fix email issues, add company,project,todos
This commit is contained in:
66
src/routes/todo.routes.js
Normal file
66
src/routes/todo.routes.js
Normal 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;
|
||||
Reference in New Issue
Block a user