import { NextRequest, NextResponse } from "next/server"; import * as classService from "@/services/classService"; import { classCreateSchema, isPrismaError } from "@/lib/validation/contentSchemas"; export async function GET() { return NextResponse.json(await classService.listClasses()); } export async function POST(request: NextRequest) { const parsed = classCreateSchema.safeParse(await request.json().catch(() => null)); if (!parsed.success) { return NextResponse.json({ error: "Class name is required and must be 160 characters or fewer" }, { status: 400 }); } try { return NextResponse.json(await classService.createClass(parsed.data.name), { status: 201 }); } catch (error) { if (isPrismaError(error, "P2002")) { return NextResponse.json({ error: "A class with that slug already exists" }, { status: 409 }); } console.error("Failed to create class", error); return NextResponse.json({ error: "Failed to create class" }, { status: 500 }); } }