/** * Evidence Upload API Route - Proxy to Backend */ import { NextRequest, NextResponse } from 'next/server' const BACKEND_URL = process.env.BACKEND_URL || 'http://localhost:8000' export async function POST(request: NextRequest) { try { const { searchParams } = new URL(request.url) const queryParams = new URLSearchParams() const control_id = searchParams.get('control_id') const evidence_type = searchParams.get('evidence_type') const title = searchParams.get('title') const description = searchParams.get('description') if (control_id) queryParams.set('control_id', control_id) if (evidence_type) queryParams.set('evidence_type', evidence_type) if (title) queryParams.set('title', title) if (description) queryParams.set('description', description) // Forward the FormData directly const formData = await request.formData() const response = await fetch( `${BACKEND_URL}/api/v1/compliance/evidence/upload?${queryParams}`, { method: 'POST', body: formData, signal: AbortSignal.timeout(60000) // 60 seconds for file upload } ) if (!response.ok) { const errorText = await response.text() return NextResponse.json( { error: `Backend Error: ${response.status}`, details: errorText }, { status: response.status } ) } const data = await response.json() return NextResponse.json(data) } catch (error) { console.error('Evidence upload proxy error:', error) return NextResponse.json( { error: 'Verbindung zum Backend fehlgeschlagen' }, { status: 503 } ) } }