import { NextResponse } from "next/server"; import { requireAdminSession } from "@/lib/admin/auth"; import { deleteMediaFile, listMediaFiles, saveMediaFile } from "@/lib/admin/media"; export async function GET() { if (!await requireAdminSession()) return NextResponse.json({ message: "Nicht autorisiert." }, { status: 401 }); return NextResponse.json({ files: await listMediaFiles() }); } export async function POST(request: Request) { if (!await requireAdminSession()) return NextResponse.json({ message: "Nicht autorisiert." }, { status: 401 }); const form = await request.formData(); const file = form.get("file"); if (!(file instanceof File)) { return NextResponse.json({ message: "Bitte wählen Sie eine Datei aus." }, { status: 400 }); } try { const result = await saveMediaFile(file); if (result.error) return NextResponse.json({ message: result.error }, { status: 400 }); } catch { return NextResponse.json({ message: "Die Datei konnte nicht gespeichert werden. Bitte Upload-Speicher und Rechte prüfen." }, { status: 500 }); } return NextResponse.json({ message: "Datei erfolgreich hochgeladen.", files: await listMediaFiles() }); } export async function DELETE(request: Request) { if (!await requireAdminSession()) return NextResponse.json({ message: "Nicht autorisiert." }, { status: 401 }); const body = await request.json() as { name?: string }; if (!body.name) return NextResponse.json({ message: "Dateiname fehlt." }, { status: 400 }); const result = await deleteMediaFile(body.name); if (result.error) return NextResponse.json({ message: result.error }, { status: 400 }); return NextResponse.json({ message: "Datei gelöscht.", files: await listMediaFiles() }); }