x
This commit is contained in:
1 parent
6f67ee6077
commit
62db477dbd
13 files changed
+660
-98
No files matched your search
@@ -169,12 +169,21 @@ export const pagesRoute = new Elysia({ prefix: "/pages" })
|
||||
})
|
||||
.use(adminOnly)
|
||||
.post("/", async ({ body, set }) => {
|
||||
const data = body;
|
||||
const operation = data?.id ? "update" : "create";
|
||||
try {
|
||||
const data = body;
|
||||
const { id, slug, title, isPublished, status, metadata } = data;
|
||||
if (typeof slug === 'string' && RESERVED_SLUGS.includes(slug.toLowerCase())) {
|
||||
set.status = 400;
|
||||
return { error: "Reserved slug cannot be used" };
|
||||
return {
|
||||
success: false,
|
||||
operation,
|
||||
pageId: id ? Number(id) : null,
|
||||
slug,
|
||||
title,
|
||||
error: "Reserved slug cannot be used",
|
||||
diagnostic: "The requested slug is reserved and cannot be used for dynamic pages."
|
||||
};
|
||||
}
|
||||
let finalIsPublished = true;
|
||||
if (status !== undefined) {
|
||||
@@ -183,22 +192,39 @@ export const pagesRoute = new Elysia({ prefix: "/pages" })
|
||||
else if (isPublished !== undefined) {
|
||||
finalIsPublished = isPublished;
|
||||
}
|
||||
if (id) {
|
||||
return await prisma.page.update({
|
||||
const page = id
|
||||
? await prisma.page.update({
|
||||
where: { id: Number(id) },
|
||||
data: { slug, title, isPublished: finalIsPublished }
|
||||
});
|
||||
}
|
||||
else {
|
||||
return await prisma.page.create({
|
||||
})
|
||||
: await prisma.page.create({
|
||||
data: { slug, title, isPublished: finalIsPublished }
|
||||
});
|
||||
}
|
||||
return {
|
||||
success: true,
|
||||
operation,
|
||||
pageId: page.id,
|
||||
slug: page.slug,
|
||||
title: page.title,
|
||||
isPublished: page.isPublished,
|
||||
page,
|
||||
diagnostic: operation === "create"
|
||||
? "Page created successfully."
|
||||
: "Page updated successfully."
|
||||
};
|
||||
}
|
||||
catch (err) {
|
||||
console.error("[Pages] Error:", err);
|
||||
set.status = 500;
|
||||
return { error: "Failed to save page" };
|
||||
return {
|
||||
success: false,
|
||||
operation,
|
||||
pageId: data?.id ? Number(data.id) : null,
|
||||
slug: data?.slug,
|
||||
title: data?.title,
|
||||
error: "Failed to save page",
|
||||
diagnostic: err instanceof Error ? err.message : "Unexpected error while saving page."
|
||||
};
|
||||
}
|
||||
}, {
|
||||
body: t.Object({
|
||||
@@ -479,4 +505,4 @@ function validateSectionPayload(type, payload) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
//# sourceMappingURL=pages.js.map
|
||||
//# sourceMappingURL=pages.js.map
|
||||
Reference in new issue
Block a user