import { NextResponse } from "next/server"; import { withApi } from "@/lib/api"; import { exportCsv, exportJson } from "@/lib/transfer"; /** * GET /api/v1/export?format=json|csv * * Vollständiger Export der eigenen Daten. JSON enthält zusätzlich Sichtungen * und Universen, CSV ist die schlanke Tabellenform für Tabellenkalkulationen. */ export const GET = withApi(async (request, user) => { const url = new URL(request.url); const format = url.searchParams.get("format") === "csv" ? "csv" : "json"; const stamp = new Date().toISOString().slice(0, 10); if (format === "csv") { const csv = await exportCsv(user.id); return new NextResponse(csv, { headers: { "content-type": "text/csv; charset=utf-8", "content-disposition": `attachment; filename="flimmer-${stamp}.csv"`, }, }); } const data = await exportJson(user.id); return new NextResponse(JSON.stringify(data, null, 2), { headers: { "content-type": "application/json; charset=utf-8", "content-disposition": `attachment; filename="flimmer-${stamp}.json"`, }, }); });