Files
stripstream-librarian/apps/backoffice/app/api/settings/status-mappings/route.ts
Froidefond Julien cfc98819ab
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 6s
feat: add configurable status mappings for metadata providers
Add a status_mappings table to replace hardcoded provider status
normalization. Users can now configure how provider statuses (e.g.
"releasing", "finie") map to target statuses (e.g. "ongoing", "ended")
via the Settings > Integrations page.

- Migration 0038: status_mappings table with pre-seeded mappings
- Migration 0039: re-normalize existing series_metadata.status values
- API: CRUD endpoints for status mappings, DB-based normalize function
- API: new GET /series/provider-statuses endpoint
- Backoffice: StatusMappingsCard component with create target, assign,
  and delete capabilities
- Fix all clippy warnings across the API crate
- Fix missing OpenAPI schema refs (MetadataStats, ProviderCount)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 12:44:22 +01:00

25 lines
732 B
TypeScript

import { NextRequest, NextResponse } from "next/server";
import { apiFetch } from "@/lib/api";
export async function GET() {
try {
const data = await apiFetch<unknown>("/settings/status-mappings");
return NextResponse.json(data);
} catch {
return NextResponse.json({ error: "Failed to fetch status mappings" }, { status: 500 });
}
}
export async function POST(request: NextRequest) {
try {
const body = await request.json();
const data = await apiFetch<unknown>("/settings/status-mappings", {
method: "POST",
body: JSON.stringify(body),
});
return NextResponse.json(data);
} catch {
return NextResponse.json({ error: "Failed to save status mapping" }, { status: 500 });
}
}