From 188c2aa6ec9bf5c91333bc8d9ec2ce4fba70ab00 Mon Sep 17 00:00:00 2001 From: iamrahimi Date: Sun, 19 Jan 2025 11:19:17 -0800 Subject: [PATCH] dashboard status --- src/controllers/projectController.js | 6 ++++++ src/models/projectModel.js | 25 +++++++++++++++++++++++++ src/routes/projectRouter.js | 1 + 3 files changed, 32 insertions(+) diff --git a/src/controllers/projectController.js b/src/controllers/projectController.js index 115ee2a..aa798e5 100644 --- a/src/controllers/projectController.js +++ b/src/controllers/projectController.js @@ -2,6 +2,12 @@ const projectModel = require("../models/projectModel"); const {getLoggedInUserId, checkProjectOwner, checkUserRoleAdmin} = require('../services/userService'); const projectController = { + + dashboard: async (req, res) => { + const dashboardStatus = await projectModel.dashboard(); + res.status(200).json({ success: true, data: dashboardStatus }); + }, + getAllProjects: async (req, res) => { try { const projects = await projectModel.getAllProjects(); diff --git a/src/models/projectModel.js b/src/models/projectModel.js index ffdb6ef..eadcdff 100644 --- a/src/models/projectModel.js +++ b/src/models/projectModel.js @@ -2,6 +2,31 @@ const { PrismaClient } = require('@prisma/client'); const prisma = new PrismaClient(); const projectModel = { + + dashboard: async () => { + try { + // Count the total number of projects + const projectsCount = await prisma.projects.count(); + + // Count the total number of users + const usersCount = await prisma.users.count(); + + // Count the total number of comments + const commentsCount = await prisma.comments.count(); + + return { + projects: projectsCount, + users: usersCount, + comments: commentsCount, + }; + } catch (error) { + console.error("Error fetching counts:", error); + throw error; + } finally { + await prisma.$disconnect(); + } + }, + getAllProjects: async () => { try { console.log("Fetching all projects..."); diff --git a/src/routes/projectRouter.js b/src/routes/projectRouter.js index 9d46f32..a4db068 100644 --- a/src/routes/projectRouter.js +++ b/src/routes/projectRouter.js @@ -2,6 +2,7 @@ const express = require('express'); const router = express.Router(); const projectController = require('../controllers/projectController'); +router.get('/dashboard', projectController.dashboard); // endpoint for getting total project, comments and users. router.get('/projects', projectController.getAllProjects); // Endpoint to get all projects router.get('/projects/:id', projectController.getProjectById); // Endpoint to get a specific project by ID router.post('/addproject', projectController.addProject); // Endpoint to add a new project