import { query } from "@/lib/db"; import { authErrorResponse, requireRole } from "@/lib/auth/session"; import { toCsv } from "@/lib/csv"; import type { Dish } from "@/lib/types"; export async function GET() { try { await requireRole(["staff", "admin"]); const dishes = await query("select * from dishes order by name"); const rows = [ ["name", "name_en", "name_pl", "price", "allergens", "additives"], ...dishes.map((d) => [ d.name, d.name_en ?? "", d.name_pl ?? "", String(d.price), (d.allergens ?? []).join(";"), (d.additives ?? []).join(";"), ]), ]; return new Response(toCsv(rows), { headers: { "Content-Type": "text/csv; charset=utf-8", "Content-Disposition": 'attachment; filename="gerichte.csv"', }, }); } catch (err) { const res = authErrorResponse(err); if (res) return res; throw err; } }