/home/techb158/cosmic-risk.abdallabala.com/src/app/api/gate-criteria/[criterionId]
NameSizeModeActions
route.js11600644editdlrm
Edit: /home/techb158/cosmic-risk.abdallabala.com/src/app/api/gate-criteria/[criterionId]/route.js (1160B)
const { prisma } = require("../../../../lib/prisma"); const { getActorFromRequest } = require("../../../../lib/request-context"); const { requireProjectAccess } = require("../../../../lib/tenant-guard"); const { updateGateCriterion } = require("../../../../services/gate-service"); const { jsonResponse, errorResponse, parseJson } = require("../../../../lib/http"); export async function PATCH(request, { params }) { try { const { criterionId } = await params; const criterion = await prisma.gateCriterion.findUnique({ where: { id: criterionId }, include: { gate: { select: { projectId: true } } } }); if (!criterion) { const error = new Error(`Gate criterion not found: ${criterionId}`); error.status = 404; throw error; } const actor = await getActorFromRequest(request); const projectScope = await requireProjectAccess(actor, criterion.gate.projectId, "gate:review"); const payload = await parseJson(request); return jsonResponse({ criterion: await updateGateCriterion({ projectScope, criterionId, actor, payload, request }) }); } catch (error) { return errorResponse(error); } }