/home/techb158/cosmic-risk.abdallabala.com/src/services
NameSizeModeActions
audit-service.js6590644editdlrm
auth-service.js47790644editdlrm
dashboard-service.js11100644editdlrm
gate-service.js45120644editdlrm
import-service.js61950644editdlrm
integration-service.js166530644editdlrm
project-service.js59730644editdlrm
reporting-service.js86440644editdlrm
risk-service.js125050644editdlrm
sso-service.js31670644editdlrm
Edit: /home/techb158/cosmic-risk.abdallabala.com/src/services/dashboard-service.js (1110B)
const { prisma } = require("../lib/prisma"); const { calculateDashboard } = require("../domain/risk-engine"); function includeProjectAggregate() { return { lifecyclePhases: { orderBy: { sequence: "asc" } }, risks: { include: { mitigations: { orderBy: { sequence: "asc" } }, evidence: true }, orderBy: { createdAt: "asc" } }, indicators: true, experiments: { include: { metrics: true } }, workspace: { include: { integrations: { orderBy: { provider: "asc" } } } } }; } async function getProjectAggregate(projectId) { return prisma.project.findUnique({ where: { id: projectId }, include: includeProjectAggregate() }); } async function getProjectDashboard(projectId) { const project = await getProjectAggregate(projectId); if (!project) { const error = new Error(`Project not found: ${projectId}`); error.status = 404; throw error; } return calculateDashboard(project); } module.exports = { includeProjectAggregate, getProjectAggregate, getProjectDashboard };