mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
48 lines
4.0 KiB
JavaScript
48 lines
4.0 KiB
JavaScript
const router = require("express").Router();
|
|
const controller = require("../../controllers/admin/task.controller");
|
|
const completionController = require("../../controllers/admin/task_completion.controller");
|
|
const { sensitiveOpsLimiter } = require("../../middleware/rateLimiter.middleware");
|
|
|
|
// ─── Task Lists ───────────────────────────────────────────────────────────────
|
|
router.get("/", controller.getTaskLists);
|
|
router.get("/archived", controller.getArchivedTaskLists);
|
|
router.get("/field-values", controller.getTaskListFieldValues);
|
|
router.post("/", sensitiveOpsLimiter, controller.createTaskList);
|
|
router.post("/bulk-archive", sensitiveOpsLimiter, controller.bulkArchiveTaskLists);
|
|
router.post("/bulk-restore", sensitiveOpsLimiter, controller.bulkRestoreTaskLists);
|
|
|
|
// ─── Task List (single) ───────────────────────────────────────────────────────
|
|
router.get("/:taskListId", controller.getTaskList);
|
|
router.patch("/:taskListId", sensitiveOpsLimiter, controller.updateTaskList);
|
|
router.delete("/:taskListId", sensitiveOpsLimiter, controller.archiveTaskList);
|
|
router.patch("/:taskListId/restore", sensitiveOpsLimiter, controller.restoreTaskList);
|
|
|
|
// ─── Task List Groups ─────────────────────────────────────────────────────────
|
|
router.get("/:taskListId/groups", controller.getTaskListGroups);
|
|
router.post("/:taskListId/groups/assign", sensitiveOpsLimiter, controller.assignGroups);
|
|
router.post("/:taskListId/groups/unassign", sensitiveOpsLimiter, controller.unassignGroups);
|
|
|
|
// ─── Tasks (nested under task-list) ──────────────────────────────────────────
|
|
router.get("/:taskListId/tasks", controller.getTasks);
|
|
router.get("/:taskListId/tasks/archived", controller.getArchivedTasks);
|
|
router.get("/:taskListId/tasks/field-values", controller.getTaskFieldValues);
|
|
router.post("/:taskListId/tasks", sensitiveOpsLimiter, controller.createTask);
|
|
router.post("/:taskListId/tasks/bulk-archive", sensitiveOpsLimiter, controller.bulkArchiveTasks);
|
|
router.post("/:taskListId/tasks/bulk-restore", sensitiveOpsLimiter, controller.bulkRestoreTasks);
|
|
|
|
// ─── Tasks (single) ───────────────────────────────────────────────────────────
|
|
router.get("/:taskListId/tasks/:taskId", controller.getTask);
|
|
router.patch("/:taskListId/tasks/:taskId", sensitiveOpsLimiter, controller.updateTask);
|
|
router.delete("/:taskListId/tasks/:taskId", sensitiveOpsLimiter, controller.archiveTask);
|
|
router.patch("/:taskListId/tasks/:taskId/restore", sensitiveOpsLimiter, controller.restoreTask);
|
|
|
|
// ─── Completions (nested under task) ─────────────────────────────────────────
|
|
router.get("/:taskListId/tasks/:taskId/completions", completionController.getCompletions);
|
|
router.get("/:taskListId/tasks/:taskId/completions/user/:userId", completionController.getCompletionsByUser);
|
|
router.post("/:taskListId/tasks/:taskId/completions/bulk-archive", sensitiveOpsLimiter, completionController.bulkArchiveCompletions);
|
|
router.post("/:taskListId/tasks/:taskId/completions/bulk-restore", sensitiveOpsLimiter, completionController.bulkRestoreCompletions);
|
|
router.get("/:taskListId/tasks/:taskId/completions/:completionId", completionController.getCompletion);
|
|
router.delete("/:taskListId/tasks/:taskId/completions/:completionId", sensitiveOpsLimiter, completionController.archiveCompletion);
|
|
router.patch("/:taskListId/tasks/:taskId/completions/:completionId/restore", sensitiveOpsLimiter, completionController.restoreCompletion);
|
|
|
|
module.exports = router; |