/** * Consent Admin API Route - Documents Proxy * * Proxies requests to consent service documents endpoints * Avoids CORS issues when browser accesses different ports */ import { NextRequest, NextResponse } from 'next/server' // Service URL - use docker network hostname in container, localhost for local dev const CONSENT_SERVICE_URL = process.env.CONSENT_SERVICE_URL || 'http://localhost:8081' export async function GET(request: NextRequest) { try { const authHeader = request.headers.get('Authorization') const response = await fetch(`${CONSENT_SERVICE_URL}/api/v1/documents`, { headers: { 'Content-Type': 'application/json', ...(authHeader ? { 'Authorization': authHeader } : {}) }, signal: AbortSignal.timeout(10000) }) if (!response.ok) { const errorText = await response.text() console.error('Consent service documents error:', response.status, errorText) return NextResponse.json( { error: `Consent Service Error: ${response.status}`, details: errorText }, { status: response.status } ) } const data = await response.json() return NextResponse.json(data) } catch (error) { console.error('Documents proxy error:', error) return NextResponse.json( { error: 'Verbindung zum Consent Service fehlgeschlagen', documents: [] }, { status: 503 } ) } } export async function POST(request: NextRequest) { try { const authHeader = request.headers.get('Authorization') const body = await request.json() const response = await fetch(`${CONSENT_SERVICE_URL}/api/v1/documents`, { method: 'POST', headers: { 'Content-Type': 'application/json', ...(authHeader ? { 'Authorization': authHeader } : {}) }, body: JSON.stringify(body), signal: AbortSignal.timeout(10000) }) if (!response.ok) { const errorText = await response.text() return NextResponse.json( { error: `Consent Service Error: ${response.status}`, details: errorText }, { status: response.status } ) } const data = await response.json() return NextResponse.json(data, { status: 201 }) } catch (error) { console.error('Create document proxy error:', error) return NextResponse.json( { error: 'Verbindung zum Consent Service fehlgeschlagen' }, { status: 503 } ) } }