import { NextResponse } from "next/server"; import { errorResponse, requireReady } from "../../_lib"; import { addSource, rejectWorkspaceForgery } from "@/server/spreadsheet-adapter/service"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; export async function POST(request: Request) { try { const { ctx, deps } = await requireReady("upload"); const form = await request.formData(); await rejectWorkspaceForgery(deps, ctx, form.get("workspace_id")); const file = form.get("file"); const jobId = String(form.get("jobId") ?? ""); if (!(file instanceof File) || !jobId) { return NextResponse.json({ error: { code: "EMPTY_FILE", message: "Envie o arquivo e a operação." } }, { status: 400 }); } const result = await addSource( deps, ctx, jobId, { filename: file.name, bytes: Buffer.from(await file.arrayBuffer()) }, form.get("sheet") ? String(form.get("sheet")) : null, Number(form.get("headerRow") ?? 1), ); return NextResponse.json(result, { status: result.httpStatus }); } catch (error) { return errorResponse(error); } }