Files
pieced-portal/src/app/api/admin/requests/route.ts
2026-04-11 21:14:09 +02:00

26 lines
808 B
TypeScript

import { NextResponse } from "next/server";
import { requirePlatformRole } from "@/lib/session";
import { listTenantRequests, syncProvisioningStatuses } from "@/lib/db";
import { getTenant } from "@/lib/k8s";
/**
* GET /api/admin/requests
* List all tenant requests. Optionally filter by ?status=pending
* Auto-syncs "provisioning" → "active" when the PiecedTenant CR is Ready.
*/
export async function GET(request: Request) {
try {
await requirePlatformRole();
} catch {
return NextResponse.json({ error: "Forbidden" }, { status: 403 });
}
await syncProvisioningStatuses();
const { searchParams } = new URL(request.url);
const status = searchParams.get("status") as any;
const requests = await listTenantRequests(status || undefined);
return NextResponse.json(requests);
}