{"version":3,"file":"preview.mjs","sources":["../../../../server/src/preview/controllers/preview.ts"],"sourcesContent":["import type { Core, UID } from '@strapi/types';\n\nimport { Preview } from '../../../../shared/contracts';\n\nimport { getService } from '../utils';\nimport { validatePreviewUrl } from './validation/preview';\n\nconst createPreviewController = () => {\n  return {\n    /**\n     * Transforms an entry into a preview URL, so that it can be previewed\n     * in the Content Manager.\n     */\n    async getPreviewUrl(ctx) {\n      const uid = ctx.params.contentType as UID.ContentType;\n      const query = ctx.request.query as Preview.GetPreviewUrl.Request['query'];\n\n      // Validate the request parameters\n      const params = await validatePreviewUrl(strapi, uid, query);\n\n      // TODO: Permissions to preview content\n\n      // Get the preview URL by using the user-defined config handler\n      const previewService = getService(strapi, 'preview');\n      const url = await previewService.getPreviewUrl(uid, params);\n\n      // If no url is found, set status to 204\n      if (!url) {\n        ctx.status = 204;\n      }\n\n      return {\n        data: { url: url || undefined },\n      } satisfies Preview.GetPreviewUrl.Response;\n    },\n  } satisfies Core.Controller;\n};\n\nexport { createPreviewController };\n"],"names":["createPreviewController","getPreviewUrl","ctx","uid","params","contentType","query","request","validatePreviewUrl","strapi","previewService","getService","url","status","data","undefined"],"mappings":";;;AAOA,MAAMA,uBAAAA,GAA0B,IAAA;IAC9B,OAAO;AACL;;;QAIA,MAAMC,eAAcC,GAAG,EAAA;AACrB,YAAA,MAAMC,GAAAA,GAAMD,GAAAA,CAAIE,MAAM,CAACC,WAAW;AAClC,YAAA,MAAMC,KAAAA,GAAQJ,GAAAA,CAAIK,OAAO,CAACD,KAAK;;AAG/B,YAAA,MAAMF,MAAAA,GAAS,MAAMI,kBAAAA,CAAmBC,MAAAA,EAAQN,GAAAA,EAAKG,KAAAA,CAAAA;;;YAKrD,MAAMI,cAAAA,GAAiBC,WAAWF,MAAAA,EAAQ,SAAA,CAAA;AAC1C,YAAA,MAAMG,GAAAA,GAAM,MAAMF,cAAAA,CAAeT,aAAa,CAACE,GAAAA,EAAKC,MAAAA,CAAAA;;AAGpD,YAAA,IAAI,CAACQ,GAAAA,EAAK;AACRV,gBAAAA,GAAAA,CAAIW,MAAM,GAAG,GAAA;AACf,YAAA;YAEA,OAAO;gBACLC,IAAAA,EAAM;AAAEF,oBAAAA,GAAAA,EAAKA,GAAAA,IAAOG;AAAU;AAChC,aAAA;AACF,QAAA;AACF,KAAA;AACF;;;;"}