{"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 },\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"],"mappings":";;;AAOA,MAAMA,uBAA0B,GAAA,IAAA;IAC9B,OAAO;AACL;;;QAIA,MAAMC,eAAcC,GAAG,EAAA;AACrB,YAAA,MAAMC,GAAMD,GAAAA,GAAAA,CAAIE,MAAM,CAACC,WAAW;AAClC,YAAA,MAAMC,KAAQJ,GAAAA,GAAAA,CAAIK,OAAO,CAACD,KAAK;;AAG/B,YAAA,MAAMF,MAAS,GAAA,MAAMI,kBAAmBC,CAAAA,MAAAA,EAAQN,GAAKG,EAAAA,KAAAA,CAAAA;;;YAKrD,MAAMI,cAAAA,GAAiBC,WAAWF,MAAQ,EAAA,SAAA,CAAA;AAC1C,YAAA,MAAMG,GAAM,GAAA,MAAMF,cAAeT,CAAAA,aAAa,CAACE,GAAKC,EAAAA,MAAAA,CAAAA;;AAGpD,YAAA,IAAI,CAACQ,GAAK,EAAA;AACRV,gBAAAA,GAAAA,CAAIW,MAAM,GAAG,GAAA;AACf;YAEA,OAAO;gBACLC,IAAM,EAAA;AAAEF,oBAAAA;AAAI;AACd,aAAA;AACF;AACF,KAAA;AACF;;;;"}