/home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]
Edit: /home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]/route.js (1522B)
const { getActorFromRequest } = require("../../../../lib/request-context");
const { requireProjectAccess } = require("../../../../lib/tenant-guard");
const { getProject, updateProject, deleteProject } = require("../../../../services/project-service");
const { jsonResponse, errorResponse, parseJson } = require("../../../../lib/http");
export async function GET(request, { params }) {
try {
const { projectId } = await params;
const actor = await getActorFromRequest(request);
await requireProjectAccess(actor, projectId, "project:read");
return jsonResponse({ project: await getProject(projectId) });
} catch (error) {
return errorResponse(error);
}
}
export async function PATCH(request, { params }) {
try {
const { projectId } = await params;
const actor = await getActorFromRequest(request);
const projectScope = await requireProjectAccess(actor, projectId, "project:write");
const payload = await parseJson(request);
return jsonResponse({ project: await updateProject({ projectScope, actor, payload, request }) });
} catch (error) {
return errorResponse(error);
}
}
export async function DELETE(request, { params }) {
try {
const { projectId } = await params;
const actor = await getActorFromRequest(request);
const projectScope = await requireProjectAccess(actor, projectId, "project:write");
return jsonResponse(await deleteProject({ projectScope, projectId, actor, request }));
} catch (error) {
return errorResponse(error);
}
}