/
home
/
techb158
/
cosmic-risk.abdallabala.com
/
src
/
app
/
api
/
projects
/
[projectId]
/
report-exports
/
/home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]/report-exports
mkdir
upload
Name
Size
Mode
Actions
[exportId]/
-
0755
rm
route.js
1814
0644
edit
dl
rm
Edit:
/home/techb158/cosmic-risk.abdallabala.com/src/app/api/projects/[projectId]/report-exports/route.js
(1814B)
const { prisma } = require("../../../../../lib/prisma"); const { getActorFromRequest } = require("../../../../../lib/request-context"); const { requireProjectAccess } = require("../../../../../lib/tenant-guard"); const { jsonResponse, errorResponse } = require("../../../../../lib/http"); const { getReport } = require("../../../../../services/reporting-service"); export async function GET(request, { params }) { try { const { projectId } = await params; const actor = await getActorFromRequest(request); await requireProjectAccess(actor, projectId, "report:export"); const exports = await prisma.reportExport.findMany({ where: { projectId }, orderBy: { createdAt: "desc" } }); return jsonResponse({ exports }); } catch (error) { return errorResponse(error); } } export async function POST(request, { params }) { try { const { projectId } = await params; const actor = await getActorFromRequest(request); await requireProjectAccess(actor, projectId, "report:export"); const body = await request.json(); const { reportType, format } = body; const type = reportType || "executive.html"; const fmt = format || (type.endsWith(".csv") ? "csv" : type.endsWith(".json") ? "json" : "html"); const report = await getReport(projectId, type); const project = await prisma.project.findUnique({ where: { id: projectId } }); const exportRecord = await prisma.reportExport.create({ data: { workspaceId: project.workspaceId, projectId, reportType: type, format: fmt, status: "Generated", metadata: { size: report.body.length }, createdById: actor.userId } }); return jsonResponse(exportRecord, 201); } catch (error) { return errorResponse(error); } }
Save
cmd:
run