feat : update
This commit is contained in:
@@ -21,13 +21,17 @@ import { requireAdmin } from "@/lib/auth/server";
|
||||
import { builtInTemplates } from "@/lib/templates";
|
||||
import { persistTemplateApplication } from "@/lib/templates/persist";
|
||||
import {
|
||||
createExtraSection,
|
||||
createGuide,
|
||||
deleteExtraSection,
|
||||
GuideVersionConflictError,
|
||||
permanentlyDeleteGuide,
|
||||
reorderExtraSections,
|
||||
restoreGuide,
|
||||
runCatalogSync,
|
||||
saveArtifacts,
|
||||
saveConstellations,
|
||||
saveExtraSection,
|
||||
saveExtraSections,
|
||||
saveTeams,
|
||||
setGuideVisibility,
|
||||
@@ -274,6 +278,64 @@ export async function saveExtraSectionList(guideId: string, input: unknown) {
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function createGuideExtra(guideId: string, input: unknown) {
|
||||
await requireAdmin();
|
||||
try {
|
||||
const section = await createExtraSection(z.string().uuid().parse(guideId), input);
|
||||
updateTag(pageCacheTag(guideId));
|
||||
return {
|
||||
status: "saved" as const,
|
||||
version: section.version,
|
||||
section: { id: section.id, slug: section.slug, title: section.title },
|
||||
};
|
||||
} catch (cause) {
|
||||
return {
|
||||
status: "error" as const,
|
||||
message: cause instanceof z.ZodError
|
||||
? cause.issues.map((issue) => issue.message).join(" • ")
|
||||
: cause instanceof Error
|
||||
? cause.message
|
||||
: "สร้าง Extra section ไม่สำเร็จ",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
export async function saveGuideExtra(
|
||||
guideId: string,
|
||||
sectionId: string,
|
||||
input: unknown,
|
||||
) {
|
||||
await requireAdmin();
|
||||
const parsedGuideId = z.string().uuid().parse(guideId);
|
||||
const parsedSectionId = z.string().uuid().parse(sectionId);
|
||||
const result = await runGuideAction(() =>
|
||||
saveExtraSection(parsedGuideId, parsedSectionId, input),
|
||||
);
|
||||
if (result.status === "saved") updateTag(pageCacheTag(guideId));
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function deleteGuideExtra(guideId: string, sectionId: string) {
|
||||
await requireAdmin();
|
||||
const result = await runGuideAction(() =>
|
||||
deleteExtraSection(
|
||||
z.string().uuid().parse(guideId),
|
||||
z.string().uuid().parse(sectionId),
|
||||
),
|
||||
);
|
||||
if (result.status === "saved") updateTag(pageCacheTag(guideId));
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function reorderGuideExtras(guideId: string, input: unknown) {
|
||||
await requireAdmin();
|
||||
const result = await runGuideAction(() =>
|
||||
reorderExtraSections(z.string().uuid().parse(guideId), input),
|
||||
);
|
||||
if (result.status === "saved") updateTag(pageCacheTag(guideId));
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function moveGuideToTrash(guideId: string) {
|
||||
await requireAdmin();
|
||||
return runGuideAction(() => trashGuide(guideId));
|
||||
|
||||
Reference in New Issue
Block a user