import { NextResponse } from "next/server"; import { requireAdminSession } from "@/lib/admin/auth"; import { listMediaFiles, saveMediaFile } from "@/lib/admin/media"; function relativeRedirect(target: string) { return new NextResponse(null, { status: 303, headers: { Location: target }, }); } 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 relativeRedirect("/admin/medien?error=missing-file"); } try { const result = await saveMediaFile(file); if (result.error) return relativeRedirect(`/admin/medien?error=${encodeURIComponent(result.error)}`); } catch { return relativeRedirect("/admin/medien?error=storage"); } return relativeRedirect("/admin/medien?uploaded=1"); }