From 7adb92503a49ab78caf090bc84ad8b014164fa37 Mon Sep 17 00:00:00 2001 From: richardtekula Date: Thu, 4 Dec 2025 07:41:31 +0100 Subject: [PATCH] Expose notes route and running timers endpoint --- src/app.js | 2 ++ src/routes/time-tracking.routes.js | 3 +++ src/services/time-tracking.service.js | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/src/app.js b/src/app.js index 4c2e8f5..0eac68d 100644 --- a/src/app.js +++ b/src/app.js @@ -22,6 +22,7 @@ import companyRoutes from './routes/company.routes.js'; import projectRoutes from './routes/project.routes.js'; import todoRoutes from './routes/todo.routes.js'; import timeTrackingRoutes from './routes/time-tracking.routes.js'; +import noteRoutes from './routes/note.routes.js'; const app = express(); @@ -82,6 +83,7 @@ app.use('/api/companies', companyRoutes); app.use('/api/projects', projectRoutes); app.use('/api/todos', todoRoutes); app.use('/api/time-tracking', timeTrackingRoutes); +app.use('/api/notes', noteRoutes); // Basic route app.get('/', (req, res) => { diff --git a/src/routes/time-tracking.routes.js b/src/routes/time-tracking.routes.js index f9a4864..3f8db30 100644 --- a/src/routes/time-tracking.routes.js +++ b/src/routes/time-tracking.routes.js @@ -32,6 +32,9 @@ router.post( // Get running time entry router.get('/running', timeTrackingController.getRunningTimeEntry); +// Get all running time entries (for dashboard) +router.get('/running-all', timeTrackingController.getAllRunningTimeEntries); + // Get all time entries with filters router.get('/', timeTrackingController.getAllTimeEntries); diff --git a/src/services/time-tracking.service.js b/src/services/time-tracking.service.js index 179f949..ff7b40f 100644 --- a/src/services/time-tracking.service.js +++ b/src/services/time-tracking.service.js @@ -224,6 +224,25 @@ export const getRunningTimeEntry = async (userId) => { return running || null; }; +/** + * Get all running time entries (for dashboard) + */ +export const getAllRunningTimeEntries = async () => { + const result = await db + .select({ + id: timeEntries.id, + userId: timeEntries.userId, + startTime: timeEntries.startTime, + firstName: users.firstName, + lastName: users.lastName, + }) + .from(timeEntries) + .innerJoin(users, eq(timeEntries.userId, users.id)) + .where(eq(timeEntries.isRunning, true)); + + return result; +}; + /** * Get time entry by ID */