/home/techb158/balavpn.abdallabala.com/src/app/api/gates/[gateId]/decisions
Edit: /home/techb158/balavpn.abdallabala.com/src/app/api/gates/[gateId]/decisions/route.js (1074B)
const { prisma } = require("../../../../../lib/prisma");
const { getActorFromRequest } = require("../../../../../lib/request-context");
const { requireProjectAccess } = require("../../../../../lib/tenant-guard");
const { addGateDecision } = require("../../../../../services/gate-service");
const { jsonResponse, errorResponse, parseJson } = require("../../../../../lib/http");
export async function POST(request, { params }) {
try {
const { gateId } = await params;
const gate = await prisma.gateEvaluation.findUnique({ where: { id: gateId } });
if (!gate) {
const error = new Error(`Gate not found: ${gateId}`);
error.status = 404;
throw error;
}
const actor = await getActorFromRequest(request);
const projectScope = await requireProjectAccess(actor, gate.projectId, "gate:review");
const payload = await parseJson(request);
const decision = await addGateDecision({ projectScope, gateId, actor, payload, request });
return jsonResponse({ decision }, 201);
} catch (error) {
return errorResponse(error);
}
}