import { auth } from "@/auth"; import { NextRequest, NextResponse } from "next/server"; const BACKEND_URL = process.env.SERVER_API_URL || "http://backend:8080"; async function handler( req: NextRequest, { params }: { params: Promise<{ path?: string[] }> } ) { const session = await auth(); const { path } = await params; const pathStr = path?.join("/") || ""; const url = `${BACKEND_URL}/api/${pathStr}${req.nextUrl.search}`; const headers = new Headers(req.headers); headers.delete("host"); if (session?.user) { headers.set("X-User-Id", (session.user as any).id || ""); headers.set("X-User-Role", (session.user as any).role || ""); } const body = req.method === "GET" || req.method === "HEAD" ? undefined : await req.arrayBuffer(); const res = await fetch(url, { method: req.method, headers, body, }); const data = await res.arrayBuffer(); return new NextResponse(data, { status: res.status, statusText: res.statusText, headers: res.headers, }); } export const GET = handler; export const POST = handler; export const PUT = handler; export const DELETE = handler; export const PATCH = handler; export const OPTIONS = handler;