{"version":3,"file":"crons.mjs","names":[],"sources":["../src/modules/crons/methods.ts"],"sourcesContent":["import { parseISO } from 'date-fns';\n\nimport type { ApiResponse } from '~/lib/api';\nimport { client } from '~/lib/fetch';\n\nimport { assignPermission } from '~/helpers/permissions/decorator';\n\nimport type { RawCron, Cron, InputCron } from './types';\n\nconst transformCron = (cron: RawCron): Cron => ({\n  ...cron,\n  lastRun: cron.lastRun ? parseISO(cron.lastRun) : undefined,\n  nextRun: cron.nextRun ? parseISO(cron.nextRun) : undefined,\n});\n\nexport async function getAllCrons(): Promise<Cron[]> {\n  const { content } = await client.fetch<ApiResponse<RawCron[]>>('/crons');\n\n  return content.map(transformCron);\n}\nassignPermission(getAllCrons, 'GET /crons');\n\nexport async function getCron(cronOrName: Cron | string): Promise<Cron> {\n  const name = typeof cronOrName === 'string' ? cronOrName : cronOrName.name;\n\n  const { content } = await client.fetch<ApiResponse<RawCron>>(\n    `/crons/${name}`\n  );\n\n  return transformCron(content);\n}\nassignPermission(getCron, 'GET /crons/:name');\n\nexport async function updateCron(\n  cron: InputCron & { name: string }\n): Promise<Cron> {\n  const { name, ...data } = cron;\n\n  const { content } = await client.fetch<ApiResponse<RawCron>>(\n    `/crons/${name}`,\n    {\n      method: 'PATCH',\n      body: data,\n    }\n  );\n\n  return transformCron(content);\n}\nassignPermission(updateCron, 'PATCH /crons/:name');\n\nexport async function forceCron(cronOrName: Cron | string): Promise<Cron> {\n  const name = typeof cronOrName === 'string' ? cronOrName : cronOrName.name;\n\n  const { content } = await client.fetch<ApiResponse<RawCron>>(\n    `/crons/${name}`,\n    {\n      method: 'POST',\n    }\n  );\n\n  return transformCron(content);\n}\nassignPermission(forceCron, 'POST /crons/:name');\n"],"mappings":";;;;;;;;mBAoCU;AA3BV,MAAM,iBAAiB,2CAClB;CACH,SAAS,KAAK,UAAU,SAAS,KAAK,OAAO,IAAI;CACjD,SAAS,KAAK,UAAU,SAAS,KAAK,OAAO,IAAI;CACnD;AAEA,SAAsB;;;;+CAA+B;EACnD,MAAM,EAAE,YAAY,MAAM,OAAO,MAA8B,QAAQ;EAEvE,OAAO,QAAQ,IAAI,aAAa;CAClC;;;AACA,iBAAiB,aAAa,YAAY;AAE1C,SAAsB,QAAQ;;;;qDAA0C;EACtE,MAAM,OAAO,OAAO,eAAe,WAAW,aAAa,WAAW;EAEtE,MAAM,EAAE,YAAY,MAAM,OAAO,MAC/B,UAAU,MACZ;EAEA,OAAO,cAAc,OAAO;CAC9B;;;AACA,iBAAiB,SAAS,kBAAkB;AAE5C,SAAsB,WACpB;;;;kDACe;EACf,MAAM,EAAE,eAAS,gCAAS;EAE1B,MAAM,EAAE,YAAY,MAAM,OAAO,MAC/B,UAAU,QACV;GACE,QAAQ;GACR,MAAM;EACR,CACF;EAEA,OAAO,cAAc,OAAO;CAC9B;;;AACA,iBAAiB,YAAY,oBAAoB;AAEjD,SAAsB,UAAU;;;;uDAA0C;EACxE,MAAM,OAAO,OAAO,eAAe,WAAW,aAAa,WAAW;EAEtE,MAAM,EAAE,YAAY,MAAM,OAAO,MAC/B,UAAU,QACV,EACE,QAAQ,OACV,CACF;EAEA,OAAO,cAAc,OAAO;CAC9B;;;AACA,iBAAiB,WAAW,mBAAmB"}