fix email issues, add company,project,todos

This commit is contained in:
richardtekula
2025-11-21 13:56:02 +01:00
parent bb851639b8
commit ca93b6f2d2
30 changed files with 4860 additions and 1066 deletions

66
src/routes/todo.routes.js Normal file
View File

@@ -0,0 +1,66 @@
import express from 'express';
import * as todoController from '../controllers/todo.controller.js';
import { authenticate } from '../middlewares/auth/authMiddleware.js';
import { validateBody, validateParams } from '../middlewares/security/validateInput.js';
import { createTodoSchema, updateTodoSchema } from '../validators/crm.validators.js';
import { z } from 'zod';
const router = express.Router();
// All todo routes require authentication
router.use(authenticate);
/**
* Todo management
*/
// Get all todos
router.get('/', todoController.getAllTodos);
// Get my todos (assigned to current user)
router.get('/my', todoController.getMyTodos);
// Get todo by ID
router.get(
'/:todoId',
validateParams(z.object({ todoId: z.string().uuid() })),
todoController.getTodoById
);
// Get todo with relations (project, company, assigned user, notes)
router.get(
'/:todoId/details',
validateParams(z.object({ todoId: z.string().uuid() })),
todoController.getTodoWithRelations
);
// Create new todo
router.post(
'/',
validateBody(createTodoSchema),
todoController.createTodo
);
// Update todo
router.patch(
'/:todoId',
validateParams(z.object({ todoId: z.string().uuid() })),
validateBody(updateTodoSchema),
todoController.updateTodo
);
// Delete todo
router.delete(
'/:todoId',
validateParams(z.object({ todoId: z.string().uuid() })),
todoController.deleteTodo
);
// Toggle todo completion status
router.patch(
'/:todoId/toggle',
validateParams(z.object({ todoId: z.string().uuid() })),
todoController.toggleTodo
);
export default router;