import { NextRequest, NextResponse } from "next/server"; import * as classService from "@/services/classService"; import { classUpdateSchema, isPrismaError } from "@/lib/validation/contentSchemas"; export async function PATCH( request: NextRequest, ctx: RouteContext<"/api/classes/[id]"> ) { const { id } = await ctx.params; const parsed = classUpdateSchema.safeParse(await request.json().catch(() => null)); if (!parsed.success) { return NextResponse.json({ error: "A valid class name is required" }, { status: 400 }); } try { return NextResponse.json(await classService.updateClass(id, parsed.data)); } catch (error) { if (isPrismaError(error, "P2025")) { return NextResponse.json({ error: "Class not found" }, { status: 404 }); } console.error("Failed to update class", error); return NextResponse.json({ error: "Failed to update class" }, { status: 500 }); } } export async function DELETE( _request: NextRequest, ctx: RouteContext<"/api/classes/[id]"> ) { const { id } = await ctx.params; try { await classService.deleteClass(id); return NextResponse.json({ success: true }); } catch (error) { if (isPrismaError(error, "P2025")) { return NextResponse.json({ error: "Class not found" }, { status: 404 }); } console.error("Failed to delete class", error); return NextResponse.json({ error: "Failed to delete class" }, { status: 500 }); } }