commerce/pages/api/preview.js
2021-06-23 10:21:22 -04:00

35 lines
1022 B
JavaScript

import { validatePreview, getDynamicPageURL } from '@agility/nextjs/node'
// A simple example for testing it manually from your browser.
// If this is located at pages/api/preview.js, then
// open /api/preview from your browser.
export default async (req, res) => {
//validate our preview key, also validate the requested page to preview exists
const validationResp = await validatePreview({
agilityPreviewKey: req.query.agilitypreviewkey,
slug: req.query.slug
});
if (validationResp.error) {
return res.status(401).end(`${validationResp.message}`)
}
let previewUrl = req.query.slug;
//TODO: these kinds of dynamic links should work by default (even outside of preview)
if(req.query.ContentID) {
const dynamicPath = await getDynamicPageURL({contentID: req.query.ContentID, preview: true, slug: req.query.slug});
if(dynamicPath) {
previewUrl = dynamicPath;
}
}
//enable preview mode
res.setPreviewData({})
// Redirect to the slug
res.writeHead(307, { Location: previewUrl })
res.end()
}