Revisione/server/api/uploads/[id].patch.ts

25 lines
827 B
TypeScript

import { db } from "../../db/index";
import { uploads } from "../../db/schema";
import { eq } from "drizzle-orm";
export default defineEventHandler(async (event) => {
const id = getRouterParam(event, "id")!;
const upload = await db.query.uploads.findFirst({ where: eq(uploads.id, id) });
if (!upload) throw createError({ statusCode: 404, message: "Upload not found" });
const body = await readBody(event);
const { type } = body ?? {};
const valid = ["slides", "past_paper", "lab_worksheet"];
if (!type || !valid.includes(type)) {
throw createError({ statusCode: 400, message: "type must be slides, past_paper, or lab_worksheet" });
}
await db
.update(uploads)
.set({ type: type as "slides" | "past_paper" | "lab_worksheet" })
.where(eq(uploads.id, id));
return { ok: true, type };
});