feat(reports): generate personal reports by section
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
createSupabasePersonalReportService,
|
||||
type PersonalReportService,
|
||||
} from "@/lib/personal-report-service";
|
||||
import { createSupabasePersonalReportJobService } from "@/lib/personal-report-job-service";
|
||||
import { isSupabaseConfigurationError } from "@/lib/supabase/config";
|
||||
import { createServerSupabaseClient } from "@/lib/supabase/server";
|
||||
|
||||
@@ -37,15 +38,15 @@ async function resolvePersistenceForUser() {
|
||||
const supabase = await createServerSupabaseClient();
|
||||
const { data: { user }, error: authError } = await supabase.auth.getUser();
|
||||
if (authError || !user) {
|
||||
return { userId: null as string | null, persistence: null as PersonalReportService | null };
|
||||
return { userId: null as string | null, persistence: null as PersonalReportService | null, jobs: null };
|
||||
}
|
||||
const persistence = createSupabasePersonalReportService(supabase);
|
||||
return { userId: user.id, persistence };
|
||||
return { userId: user.id, persistence, jobs: createSupabasePersonalReportJobService(supabase) };
|
||||
}
|
||||
|
||||
export async function GET(request: Request, context: RouteContext) {
|
||||
try {
|
||||
const { userId, persistence } = await resolvePersistenceForUser();
|
||||
const { userId, persistence, jobs } = await resolvePersistenceForUser();
|
||||
const { reportId } = await context.params;
|
||||
if (!uuidPattern.test(reportId)) {
|
||||
return NextResponse.json(
|
||||
@@ -69,6 +70,7 @@ export async function GET(request: Request, context: RouteContext) {
|
||||
// canonical server parse (schema + guards + evidence hash recompute)
|
||||
// before it is returned to the browser. Client-side validation is never
|
||||
// a substitute.
|
||||
jobs: jobs ?? undefined,
|
||||
validateReadyDocument: (document) => {
|
||||
const parsed = safeParseServerReportDocument(document);
|
||||
return parsed.ok
|
||||
|
||||
Reference in New Issue
Block a user