Files
breakpilot-lehrer/admin-lehrer/app/api/admin/compliance/evidence/upload/route.ts
Benjamin Boenisch 5a31f52310 Initial commit: breakpilot-lehrer - Lehrer KI Platform
Services: Admin-Lehrer, Backend-Lehrer, Studio v2, Website,
Klausur-Service, School-Service, Voice-Service, Geo-Service,
BreakPilot Drive, Agent-Core

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:47:26 +01:00

54 lines
1.6 KiB
TypeScript

/**
* 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 }
)
}
}