src/app/api/catalog/flag/route.ts
Linked repository file from this build.
import { NextResponse } from "next/server";
import { z } from "zod";
import { apiRoute } from "@/lib/api-route";
import { getActor } from "@/lib/auth/server";
import { flagReview } from "@/lib/db/catalog-store";
const schema = z.object({ reviewKey: z.string().uuid(), flagged: z.boolean() });
export const PATCH = apiRoute("Unable to update flag. Please retry.", async (request) => {
const parsed = schema.safeParse(await request.json().catch(() => null));
if (!parsed.success)
return NextResponse.json({ error: "Check the review flag." }, { status: 400 });
await flagReview(await getActor(request), parsed.data.reviewKey, parsed.data.flagged);
return NextResponse.json({ ok: true });
});