/
home
/
techb158
/
balavpn.abdallabala.com
/
src
/
app
/
api
/
risks
/
[riskId]
/
mitigations
/
/home/techb158/balavpn.abdallabala.com/src/app/api/risks/[riskId]/mitigations
mkdir
upload
Name
Size
Mode
Actions
route.js
1550
0644
edit
dl
rm
Edit:
/home/techb158/balavpn.abdallabala.com/src/app/api/risks/[riskId]/mitigations/route.js
(1550B)
const { prisma } = require("../../../../../lib/prisma"); const { getActorFromRequest } = require("../../../../../lib/request-context"); const { requireProjectAccess } = require("../../../../../lib/tenant-guard"); const { createMitigation } = 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 POST(request, { params }) { const start = Date.now(); try { const { riskId } = await params; const risk = await prisma.risk.findUnique({ where: { id: riskId } }); if (!risk) { const error = new Error(`Risk not found: ${riskId}`); error.status = 404; throw error; } const actor = await getActorFromRequest(request); const projectScope = await requireProjectAccess(actor, risk.projectId, "mitigation:write"); const payload = await parseJson(request); const idempotencyKey = getIdempotencyKey(request); const mitigation = await withIdempotency(idempotencyKey, () => createMitigation({ projectScope, riskId, actor, payload, request }) ); trackRequest("POST", "/api/risks/[riskId]/mitigations", 201, Date.now() - start); return jsonResponse({ mitigation }, 201); } catch (error) { trackRequest("POST", "/api/risks/[riskId]/mitigations", error.status || 500, Date.now() - start); return errorResponse(error); } }
Save
cmd:
run