/home/techb158/cosmic-risk.abdallabala.com/src/app/api/gate-criteria/[criterionId]
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);
}
}