/home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]/risks
NameSizeModeActions
route.js18140644editdlrm
Edit: /home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]/risks/route.js (1814B)
const { getActorFromRequest } = require("../../../../../lib/request-context"); const { requireProjectAccess } = require("../../../../../lib/tenant-guard"); const { listRisks, createRisk } = require("../../../../../services/risk-service"); const { jsonResponse, errorResponse, parseJson } = require("../../../../../lib/http"); const { withIdempotency, getIdempotencyKey } = require("../../../../../lib/idempotency"); const { trackRequest } = require("../../../../../lib/metrics"); export async function GET(request, { params }) { const start = Date.now(); try { const { projectId } = await params; const actor = await getActorFromRequest(request); await requireProjectAccess(actor, projectId, "risk:read"); trackRequest("GET", "/api/projects/[projectId]/risks", 200, Date.now() - start); return jsonResponse({ risks: await listRisks(projectId) }); } catch (error) { trackRequest("GET", "/api/projects/[projectId]/risks", error.status || 500, Date.now() - start); return errorResponse(error); } } export async function POST(request, { params }) { const start = Date.now(); try { const { projectId } = await params; const actor = await getActorFromRequest(request); const projectScope = await requireProjectAccess(actor, projectId, "risk:write"); const payload = await parseJson(request); const idempotencyKey = getIdempotencyKey(request); const risk = await withIdempotency(idempotencyKey, () => createRisk({ projectScope, actor, payload, request }) ); trackRequest("POST", "/api/projects/[projectId]/risks", 201, Date.now() - start); return jsonResponse({ risk }, 201); } catch (error) { trackRequest("POST", "/api/projects/[projectId]/risks", error.status || 500, Date.now() - start); return errorResponse(error); } }