Files
starr-philproperties/routes/admin/task.routes.js
T
kennethobsequio 439bb33f77 ready to test
Testing

Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
2026-06-22 10:06:58 +08:00

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;