Merge pull request 'chore(admin): findUnique composite key' (#37) from chore/admin-content-composite-key into main

This commit is contained in:
tarzzan 2026-05-31 11:48:16 +00:00
commit bb2fee7659
2 changed files with 9 additions and 3 deletions

View file

@ -14,7 +14,10 @@ export default async function EditContentPage({ params }: PageProps) {
await requireRole([UserRole.ADMIN]);
const { slug } = await params;
// Pas getContentPage : il filtre published=true. Ici on veut tout voir.
const row = await prisma.contentPage.findUnique({ where: { slug } });
// Admin édite la version FR par défaut. (Édition EN = future feature.)
const row = await prisma.contentPage.findUnique({
where: { slug_lang: { slug, lang: "fr" } },
});
if (!row) notFound();
// Re-construction du type minimal attendu par le formulaire.
const page = {

View file

@ -19,10 +19,13 @@ export async function PATCH(req: Request, ctx: { params: Promise<{ slug: string
if (!parsed.success) {
return NextResponse.json({ error: "Invalid payload" }, { status: 400 });
}
const existing = await prisma.contentPage.findUnique({ where: { slug } });
// L'admin édite la version FR par défaut (édition multi-langues à venir).
const existing = await prisma.contentPage.findUnique({
where: { slug_lang: { slug, lang: "fr" } },
});
if (!existing) return NextResponse.json({ error: "Not found" }, { status: 404 });
const updated = await prisma.contentPage.update({
where: { slug },
where: { slug_lang: { slug, lang: "fr" } },
data: {
...(parsed.data.title !== undefined ? { title: parsed.data.title } : {}),
...(parsed.data.body !== undefined ? { body: parsed.data.body } : {}),