Intelligence

Artifacts

Browse the repository, read documents, and manage the governance folders. Source, runtime, and infrastructure are read-only.

Repository
globals.csslayout.tsxnot-found.tsxpage.tsx
.gitignoreDockerfilenext-env.d.tsnext.config.mjspackage-lock.jsonpackage.jsonpostcss.config.mjsREADME.mdtailwind.config.tstsconfig.jsontsconfig.tsbuildinfo
README.md
CONSTITUTION_COMPLIANCE_AUDIT_V1.mdREADME.md
repositories/aaf-holdings/hq01/app/api/missions/[id]/reports/route.ts
1.2 KB
import { NextResponse } from "next/server";
import {
  listReportsForMission,
  listReportsForObjective,
  listReportsForWorkOrder,
  listReportsForAssignment,
} from "@/lib/missions/reports";

/**
 * Report search across the chain (PASS M4). Every level can list its reports.
 *
 *   GET /api/missions/:id/reports
 *   GET /api/missions/:id/reports?objective=OBJECTIVE-000001
 *   GET /api/missions/:id/reports?workOrder=WORKORDER-000001
 *   GET /api/missions/:id/reports?assignment=ASSIGNMENT-000001
 */

export const runtime = "nodejs";
export const dynamic = "force-dynamic";

export async function GET(
  request: Request,
  { params }: { params: { id: string } },
) {
  const url = new URL(request.url);
  const objective = url.searchParams.get("objective");
  const workOrder = url.searchParams.get("workOrder");
  const assignment = url.searchParams.get("assignment");

  let reports;
  if (assignment) reports = listReportsForAssignment(params.id, assignment);
  else if (workOrder) reports = listReportsForWorkOrder(params.id, workOrder);
  else if (objective) reports = listReportsForObjective(params.id, objective);
  else reports = listReportsForMission(params.id);

  return NextResponse.json({ reports });
}

root · /srv/aaf