feat(rectification): add durable case and evidence runtime

This commit is contained in:
Jesse
2026-08-11 16:18:53 +08:00
parent 60e2ce4fa4
commit d394dd0585
13 changed files with 3794 additions and 0 deletions
@@ -0,0 +1,48 @@
import { NextResponse } from "next/server";
import { createAdminSupabaseClient } from "@/lib/supabase/admin";
import { createServerSupabaseClient } from "@/lib/supabase/server";
import {
RectificationCaseServiceError,
getRectificationEntrySummary,
mapRectificationRpcError,
} from "@/lib/rectification-agentic/v9/case-service";
export const runtime = "nodejs";
/**
* GET /api/rectification/cases/entry-summary
*
* Server-truth homepage CTA: "开始生时校正" / "继续上次校正" / "再次校正".
*/
export async function GET() {
let supabase;
let accounting;
try {
supabase = await createServerSupabaseClient();
accounting = createAdminSupabaseClient();
} catch {
return NextResponse.json({ error: "服务尚未配置" }, { status: 503 });
}
const {
data: { user },
error: authError,
} = await supabase.auth.getUser();
if (authError || !user) {
return NextResponse.json({ error: "请先登录" }, { status: 401 });
}
try {
return NextResponse.json(await getRectificationEntrySummary(accounting, user.id));
} catch (error) {
if (error instanceof RectificationCaseServiceError) {
const view = mapRectificationRpcError(
new Error(`agentic_rectification_${error.code}`),
);
return NextResponse.json({ error: view.message, code: view.code }, { status: view.status });
}
return NextResponse.json(
{ error: "校正服务暂时不可用", code: "rectification_service_failed" },
{ status: 500 },
);
}
}