/home/techb158/balavpn.abdallabala.com/src/app/api/mitigations/[mitigationId]
NameSizeModeActions
evidence/-0755rm
route.js20610644editdlrm
Edit: /home/techb158/balavpn.abdallabala.com/src/app/api/mitigations/[mitigationId]/route.js (2061B)
const { prisma } = require("../../../../lib/prisma"); const { getActorFromRequest } = require("../../../../lib/request-context"); const { requireProjectAccess } = require("../../../../lib/tenant-guard"); const { getMitigation, updateMitigation, deleteMitigation } = require("../../../../services/risk-service"); const { jsonResponse, errorResponse, parseJson } = require("../../../../lib/http"); async function scopeForMitigation(request, mitigationId, permission) { const mitigation = await prisma.mitigation.findUnique({ where: { id: mitigationId }, include: { risk: { select: { projectId: true } } } }); if (!mitigation) { const error = new Error(`Mitigation not found: ${mitigationId}`); error.status = 404; throw error; } const actor = await getActorFromRequest(request); const projectScope = await requireProjectAccess(actor, mitigation.risk.projectId, permission); return { actor, projectScope }; } export async function GET(request, { params }) { try { const { mitigationId } = await params; const { actor } = await scopeForMitigation(request, mitigationId, "risk:read"); return jsonResponse({ mitigation: await getMitigation(mitigationId) }); } catch (error) { return errorResponse(error); } } export async function PATCH(request, { params }) { try { const { mitigationId } = await params; const { actor, projectScope } = await scopeForMitigation(request, mitigationId, "mitigation:write"); const payload = await parseJson(request); return jsonResponse({ mitigation: await updateMitigation({ projectScope, mitigationId, actor, payload, request }) }); } catch (error) { return errorResponse(error); } } export async function DELETE(request, { params }) { try { const { mitigationId } = await params; const { actor, projectScope } = await scopeForMitigation(request, mitigationId, "mitigation:write"); return jsonResponse(await deleteMitigation({ projectScope, mitigationId, actor, request })); } catch (error) { return errorResponse(error); } }