4466ba436b
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
28 lines
960 B
JavaScript
Executable file
28 lines
960 B
JavaScript
Executable file
import { getPreviewPostBySlug } from "../../lib/umbraco-heartcore";
|
|
|
|
export default async function handler(req, res) {
|
|
// Check the secret and next parameters
|
|
// This secret should only be known to this API route and the CMS
|
|
if (
|
|
req.query.secret !== process.env.UMBRACO_PREVIEW_SECRET ||
|
|
!req.query.slug
|
|
) {
|
|
return res.status(401).json({ message: "Invalid token" });
|
|
}
|
|
|
|
// Fetch the headless CMS to check if the provided `slug` exists
|
|
const post = await getPreviewPostBySlug(req.query.slug);
|
|
|
|
// If the slug doesn't exist prevent preview mode from being enabled
|
|
if (!post) {
|
|
return res.status(401).json({ message: "Invalid slug" });
|
|
}
|
|
|
|
// Enable Draft Mode by setting the cookie
|
|
res.setDraftMode({ enable: true });
|
|
|
|
// Redirect to the path from the fetched post
|
|
// We don't redirect to req.query.slug as that might lead to open redirect vulnerabilities
|
|
res.writeHead(307, { Location: post.slug });
|
|
res.end();
|
|
}
|