-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtaskRoutes.js
More file actions
34 lines (28 loc) · 2.12 KB
/
taskRoutes.js
File metadata and controls
34 lines (28 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const express = require("express");
const router = express.Router();
// Controllers
const taskController = require("../controllers/taskController");
const boardController = require("../controllers/boardController");
const { agents } = require("../ai/aiAssignAgent");
// Middleware
const { authMiddleware } = require("../middleware/jwtAuth");
const { checkDashboardPermission, checkDashboardAccess } = require("../middleware/permissionCheck");
const { checkBoardPermission, checkDashboardForBoardCreation } = require("../middleware/boardPermissionCheck");
const { checkTaskPermission, checkBoardForTaskCreation } = require("../middleware/taskPermissionCheck");
// Board routes - nested under dashboards
router.get("/dashboards/:dashboardId/boards", authMiddleware, checkDashboardAccess(), boardController.getBoardByDashboardId);
router.post("/dashboards/:dashboardId/boards", authMiddleware, checkDashboardForBoardCreation(['Owner', 'Admin', 'Editor']), boardController.createBoard);
router.get("/boards/:boardId", authMiddleware, checkBoardPermission(['Owner', 'Admin', 'Editor', 'Viewer']), boardController.getBoard);
router.put("/boards/:boardId", authMiddleware, checkBoardPermission(['Owner', 'Admin', 'Editor']), boardController.updateBoard);
router.delete("/boards/:boardId", authMiddleware, checkBoardPermission(['Owner', 'Admin']), boardController.deleteBoard);
// Task routes
router.get("/boards/:boardId/tasks", authMiddleware, checkBoardPermission(['Owner', 'Admin', 'Editor', 'Viewer']), taskController.getTasksByBoardId);
router.get("/tasks/:id", authMiddleware, checkTaskPermission(['Owner', 'Admin', 'Editor', 'Viewer']), taskController.getTask);
router.post("/tasks", authMiddleware, checkBoardForTaskCreation(['Owner', 'Admin', 'Editor']), taskController.createTask);
router.put("/tasks/:id", authMiddleware, checkTaskPermission(['Owner', 'Admin', 'Editor']), taskController.updateTask);
router.delete("/tasks/:id", authMiddleware, checkTaskPermission(['Owner', 'Admin', 'Editor']), taskController.deleteTask);
// Agents endpoint (public utility endpoint)
router.get("/agents", (req, res) => {
res.json(agents);
});
module.exports = router;