Backend (Go): - DB Migration 023: ai_system_registrations Tabelle - RegistrationStore: CRUD + Status-Management + Export-JSON - RegistrationHandlers: 7 Endpoints (Create, List, Get, Update, Status, Prefill, Export) - Routes in main.go: /sdk/v1/ai-registration/* Frontend (Next.js): - 6-Step Wizard: Anbieter → System → Klassifikation → Konformitaet → Trainingsdaten → Pruefung - System-Karten mit Status-Badges (Entwurf/Bereit/Eingereicht/Registriert) - JSON-Export fuer EU-Datenbank-Submission - Status-Workflow: draft → ready → submitted → registered - API Proxy Routes Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
48 lines
1.8 KiB
TypeScript
48 lines
1.8 KiB
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
|
|
|
const SDK_URL = process.env.SDK_URL || 'http://ai-compliance-sdk:8090'
|
|
|
|
export async function GET(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
|
try {
|
|
const { id } = await params
|
|
const resp = await fetch(`${SDK_URL}/sdk/v1/ai-registration/${id}`)
|
|
const data = await resp.json()
|
|
return NextResponse.json(data)
|
|
} catch (err) {
|
|
return NextResponse.json({ error: 'Failed to fetch registration' }, { status: 500 })
|
|
}
|
|
}
|
|
|
|
export async function PUT(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
|
try {
|
|
const { id } = await params
|
|
const tenantId = request.headers.get('x-tenant-id') || '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e'
|
|
const body = await request.json()
|
|
const resp = await fetch(`${SDK_URL}/sdk/v1/ai-registration/${id}`, {
|
|
method: 'PUT',
|
|
headers: { 'Content-Type': 'application/json', 'X-Tenant-ID': tenantId },
|
|
body: JSON.stringify(body),
|
|
})
|
|
const data = await resp.json()
|
|
return NextResponse.json(data, { status: resp.status })
|
|
} catch (err) {
|
|
return NextResponse.json({ error: 'Failed to update registration' }, { status: 500 })
|
|
}
|
|
}
|
|
|
|
export async function PATCH(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
|
try {
|
|
const { id } = await params
|
|
const body = await request.json()
|
|
const resp = await fetch(`${SDK_URL}/sdk/v1/ai-registration/${id}/status`, {
|
|
method: 'PATCH',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(body),
|
|
})
|
|
const data = await resp.json()
|
|
return NextResponse.json(data, { status: resp.status })
|
|
} catch (err) {
|
|
return NextResponse.json({ error: 'Failed to update status' }, { status: 500 })
|
|
}
|
|
}
|