{"version":3,"file":"crons.mjs","names":[],"sources":["../src/modules/crons/methods.ts"],"sourcesContent":["import { parseISO } from 'date-fns';\n\nimport { client } from '~/lib/fetch';\nimport type { ApiResponse } from '~/lib/api';\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 {\n    content,\n  } = await client.fetch<ApiResponse<RawCron[]>>('/crons');\n\n  return content.map(transformCron);\n}\nassignPermission(getAllCrons, 'GET /crons');\n\nexport async function getCron(\n  cronOrName: Cron | string,\n): Promise<Cron> {\n  const name = typeof cronOrName === 'string' ? cronOrName : cronOrName.name;\n\n  const {\n    content,\n  } = await client.fetch<ApiResponse<RawCron>>(`/crons/${name}`);\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 {\n    content,\n  } = await client.fetch<ApiResponse<RawCron>>(`/crons/${name}`, {\n    method: 'PATCH',\n    body: data,\n  });\n\n  return transformCron(content);\n}\nassignPermission(updateCron, 'PATCH /crons/:name');\n\nexport async function forceCron(\n  cronOrName: Cron | string,\n): Promise<Cron> {\n  const name = typeof cronOrName === 'string' ? cronOrName : cronOrName.name;\n\n  const {\n    content,\n  } = await client.fetch<ApiResponse<RawCron>>(`/crons/${name}`, {\n    method: 'POST',\n  });\n\n  return transformCron(content);\n}\nassignPermission(forceCron, 'POST /crons/:name');\n"],"mappings":";;;;;;;;mBAwCU;AA/BV,MAAM,iBAAiB,2CAClB;CACH,SAAS,KAAK,UAAU,SAAS,KAAK,QAAQ,GAAG;CACjD,SAAS,KAAK,UAAU,SAAS,KAAK,QAAQ,GAAG;;AAGnD,SAAsB;;;;+CAA+B;EACnD,MAAM,EACJ,kBACQ,OAAO,MAA8B,SAAS;AAExD,SAAO,QAAQ,IAAI,cAAc;;;;AAEnC,iBAAiB,aAAa,aAAa;AAE3C,SAAsB,QACpB;;;;qDACe;EACf,MAAM,OAAO,OAAO,eAAe,WAAW,aAAa,WAAW;EAEtE,MAAM,EACJ,kBACQ,OAAO,MAA4B,UAAU,OAAO;AAE9D,SAAO,cAAc,QAAQ;;;;AAE/B,iBAAiB,SAAS,mBAAmB;AAE7C,SAAsB,WACpB;;;;kDACe;EACf,MAAM,EAAE,eAAS,gCAAS;EAE1B,MAAM,EACJ,kBACQ,OAAO,MAA4B,UAAU,QAAQ;GAC7D,QAAQ;GACR,MAAM;GACP,CAAC;AAEF,SAAO,cAAc,QAAQ;;;;AAE/B,iBAAiB,YAAY,qBAAqB;AAElD,SAAsB,UACpB;;;;uDACe;EACf,MAAM,OAAO,OAAO,eAAe,WAAW,aAAa,WAAW;EAEtE,MAAM,EACJ,kBACQ,OAAO,MAA4B,UAAU,QAAQ,EAC7D,QAAQ,QACT,CAAC;AAEF,SAAO,cAAc,QAAQ;;;;AAE/B,iBAAiB,WAAW,oBAAoB"}