{"version":3,"file":"methods-BT7d3cn_.mjs","names":[],"sources":["../src/modules/generations/methods.ts"],"sourcesContent":["import { parseISO } from 'date-fns';\nimport { assignPermission } from '~/helpers/permissions/decorator';\nimport { client } from '~/lib/fetch';\nimport { transformCreatedUpdated } from '~/lib/transform';\nimport {\n  apiRequestOptionsToQuery,\n  type ApiRequestOptions,\n  type ApiResponse,\n  type ApiResponsePaginated,\n  type SdkPaginated,\n} from '~/lib/api';\n\nimport { transformTaskWithoutBody } from '../tasks/methods';\nimport type { Generation, RawGeneration } from './types';\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":";;;;;;;;;;AAeA,MAAa,uBAAuB,iDAC/B,wBAAwB,WAAW;CACtC,OAAO,SAAS,WAAW,MAAM;CACjC,KAAK,SAAS,WAAW,IAAI;CAC7B,WAAW,WAAW,YAAY,SAAS,WAAW,UAAU,GAAG;CAEnE,MAAM,WAAW,OAAO,yBAAyB,WAAW,KAAK,GAAG;;AAKtE,SAAsB,kBACpB;;;;yDAC+B;EAC/B,MAAM,EACJ,SACA,MAAM,EAAE,OAAO,OAAO,iBACd,OAAO,MAA2C,gBAAgB,EAC1E,yCACK,yBAAyB,KAAK,SACjC,qDAAS,KAAM,YAElB,CAAC;AAEF,SAAO;GACL,OAAO,QAAQ,IAAI,oBAAoB;GACvC;GACA;GACA;GACD;;;;AAEH,iBAAiB,mBAAmB,mBAAmB;AAEvD,SAAsB,cACpB,KACA;;;;+CADA,gBACA,SACqB;EACrB,MAAM,KACJ,OAAO,mBAAmB,WAAW,iBAAiB,eAAe;EAEvE,MAAM,EAAE,kBAAkB,OAAO,MAC/B,gBAAgB,MAChB,EACE,OAAO,EAAE,SAAS,EACnB,CACF;AAED,SAAO,oBAAoB,QAAQ;;;;AAErC,iBAAiB,eAAe,wBAAwB,KAAK;AAE7D,SAAsB,kBACpB;;;;mEACyB;EACzB,MAAM,KACJ,OAAO,mBAAmB,WAAW,iBAAiB,eAAe;EAEvE,MAAM,EAAE,kBAAkB,OAAO,MAC/B,gBAAgB,MAChB,EACE,QAAQ,OACT,CACF;AAED,SAAO;;;;AAET,iBAAiB,mBAAmB,uBAAuB"}