{"version":3,"file":"methods-CUJxLmLW.mjs","names":[],"sources":["../src/modules/generations/methods.ts"],"sourcesContent":["import { parseISO } from 'date-fns';\n\nimport {\n  apiRequestOptionsToQuery,\n  type ApiRequestOptions,\n  type ApiResponse,\n  type ApiResponsePaginated,\n  type SdkPaginated,\n} from '~/lib/api';\nimport { client } from '~/lib/fetch';\nimport { transformCreatedUpdated } from '~/lib/transform';\n\nimport { assignPermission } from '~/helpers/permissions/decorator';\n\nimport type { Generation, RawGeneration } from './types';\nimport { transformTaskWithoutBody } from '../tasks/methods';\n\nexport const transformGeneration = (generation: RawGeneration): Generation => ({\n  ...transformCreatedUpdated(generation),\n  start: parseISO(generation.start),\n  end: parseISO(generation.end),\n  startedAt: generation.startedAt ? parseISO(generation.startedAt) : undefined,\n\n  task: generation.task ? transformTaskWithoutBody(generation.task) : undefined,\n});\n\ntype PaginatedGenerations = SdkPaginated<Generation>;\n\nexport async function getAllGenerations(\n  opts?: ApiRequestOptions & { include?: string[] }\n): Promise<PaginatedGenerations> {\n  const {\n    content,\n    meta: { total, count, page },\n  } = await client.fetch<ApiResponsePaginated<RawGeneration>>('/generations', {\n    query: {\n      ...apiRequestOptionsToQuery(opts),\n      include: opts?.include,\n    },\n  });\n\n  return {\n    items: content.map(transformGeneration),\n    total,\n    count,\n    page,\n  };\n}\nassignPermission(getAllGenerations, 'GET /generations');\n\nexport async function getGeneration(\n  generationOrId: Generation | string,\n  include?: string[]\n): Promise<Generation> {\n  const id =\n    typeof generationOrId === 'string' ? generationOrId : generationOrId.id;\n\n  const { content } = await client.fetch<ApiResponse<RawGeneration>>(\n    `/generations/${id}`,\n    {\n      query: { include },\n    }\n  );\n\n  return transformGeneration(content);\n}\nassignPermission(getGeneration, 'GET /generations/:id', true);\n\nexport async function restartGeneration(\n  generationOrId: Generation | string\n): Promise<{ id: string }> {\n  const id =\n    typeof generationOrId === 'string' ? generationOrId : generationOrId.id;\n\n  const { content } = await client.fetch<ApiResponse<{ id: string }>>(\n    `/generations/${id}`,\n    {\n      method: 'PUT',\n    }\n  );\n\n  return content;\n}\nassignPermission(restartGeneration, 'PUT /generations/:id');\n"],"mappings":";;;;;;;;;;AAiBA,MAAa,uBAAuB,iDAC/B,wBAAwB,UAAU;CACrC,OAAO,SAAS,WAAW,KAAK;CAChC,KAAK,SAAS,WAAW,GAAG;CAC5B,WAAW,WAAW,YAAY,SAAS,WAAW,SAAS,IAAI;CAEnE,MAAM,WAAW,OAAO,yBAAyB,WAAW,IAAI,IAAI;CACtE;AAIA,SAAsB,kBACpB;;;;yDAC+B;EAC/B,MAAM,EACJ,SACA,MAAM,EAAE,OAAO,OAAO,WACpB,MAAM,OAAO,MAA2C,gBAAgB,EAC1E,yCACK,yBAAyB,IAAI,UAChC,qDAAS,KAAM,SACjB,EACF,CAAC;EAED,OAAO;GACL,OAAO,QAAQ,IAAI,mBAAmB;GACtC;GACA;GACA;EACF;CACF;;;AACA,iBAAiB,mBAAmB,kBAAkB;AAEtD,SAAsB,cACpB,KACA;;;;+CADA,gBACA,SACqB;EACrB,MAAM,KACJ,OAAO,mBAAmB,WAAW,iBAAiB,eAAe;EAEvE,MAAM,EAAE,YAAY,MAAM,OAAO,MAC/B,gBAAgB,MAChB,EACE,OAAO,EAAE,QAAQ,EACnB,CACF;EAEA,OAAO,oBAAoB,OAAO;CACpC;;;AACA,iBAAiB,eAAe,wBAAwB,IAAI;AAE5D,SAAsB,kBACpB;;;;mEACyB;EACzB,MAAM,KACJ,OAAO,mBAAmB,WAAW,iBAAiB,eAAe;EAEvE,MAAM,EAAE,YAAY,MAAM,OAAO,MAC/B,gBAAgB,MAChB,EACE,QAAQ,MACV,CACF;EAEA,OAAO;CACT;;;AACA,iBAAiB,mBAAmB,sBAAsB"}