import { NextRequest, NextResponse } from "next/server"; import { createSpacedRepetitionSetSchema } from "@/lib/validation/spacedRepetitionSchemas"; import { spacedRepetitionErrorResponse } from "@/lib/spacedRepetitionApi"; import * as spacedRepetitionService from "@/services/spacedRepetitionService"; export async function GET(request: NextRequest) { const classId = new URL(request.url).searchParams.get("classId"); if (!classId) return NextResponse.json({ error: "classId is required" }, { status: 400 }); try { return NextResponse.json(await spacedRepetitionService.listSetsByClass(classId)); } catch (error) { return spacedRepetitionErrorResponse(error); } } export async function POST(request: NextRequest) { const parsed = createSpacedRepetitionSetSchema.safeParse( await request.json().catch(() => null) ); if (!parsed.success) { return NextResponse.json({ error: "Invalid repetition set" }, { status: 400 }); } try { return NextResponse.json(await spacedRepetitionService.createSet(parsed.data), { status: 201, }); } catch (error) { return spacedRepetitionErrorResponse(error); } }