mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
With DEV to QAS live test environment Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
65 lines
4.9 KiB
JavaScript
65 lines
4.9 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");
|
|
|
|
// NOTE on rate limiting: every route below already sits behind adminLimiter
|
|
// (200 req/15min per admin user — applied blanket-wide in admin.routes.js).
|
|
// sensitiveOpsLimiter (10 req/hour, ALSO keyed per admin user and shared
|
|
// across every route it's attached to) is reserved for genuinely irreversible
|
|
// actions — permanent delete — so routine CRUD doesn't compete with those for
|
|
// the same tight budget.
|
|
|
|
// ─── Task Lists ───────────────────────────────────────────────────────────────
|
|
router.get("/", controller.getTaskLists);
|
|
router.get("/archived", controller.getArchivedTaskLists);
|
|
router.get("/field-values", controller.getTaskListFieldValues);
|
|
router.post("/", controller.createTaskList);
|
|
router.post("/bulk-archive", controller.bulkArchiveTaskLists);
|
|
router.post("/bulk-restore", controller.bulkRestoreTaskLists);
|
|
router.post("/bulk-delete", sensitiveOpsLimiter, controller.bulkPermanentlyDeleteTaskLists);
|
|
|
|
// ─── Task List (single) ───────────────────────────────────────────────────────
|
|
router.get("/:taskListId", controller.getTaskList);
|
|
router.get("/:taskListId/permanent-delete-impact", controller.getTaskListPermanentDeleteImpact);
|
|
router.patch("/:taskListId", controller.updateTaskList);
|
|
router.delete("/:taskListId", controller.archiveTaskList);
|
|
router.delete("/:taskListId/permanent", sensitiveOpsLimiter, controller.permanentlyDeleteTaskList);
|
|
router.patch("/:taskListId/restore", controller.restoreTaskList);
|
|
|
|
// ─── Task List Groups ─────────────────────────────────────────────────────────
|
|
router.get("/:taskListId/groups", controller.getTaskListGroups);
|
|
router.put("/:taskListId/groups", controller.syncGroups);
|
|
router.post("/:taskListId/groups/assign", controller.assignGroups);
|
|
router.post("/:taskListId/groups/unassign", 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.get("/:taskListId/tasks/requirement-completion-check", controller.checkRequirementCompletion);
|
|
router.post("/:taskListId/tasks", controller.createTask);
|
|
router.post("/:taskListId/tasks/bulk", controller.createTasksBulk);
|
|
router.post("/:taskListId/tasks/bulk-archive", controller.bulkArchiveTasks);
|
|
router.post("/:taskListId/tasks/bulk-restore", controller.bulkRestoreTasks);
|
|
router.post("/:taskListId/tasks/bulk-delete", sensitiveOpsLimiter, controller.bulkPermanentlyDeleteTasks);
|
|
router.patch("/:taskListId/tasks/order", controller.reorderTasks);
|
|
|
|
// ─── Tasks (single) ───────────────────────────────────────────────────────────
|
|
router.get("/:taskListId/tasks/:taskId", controller.getTask);
|
|
router.patch("/:taskListId/tasks/:taskId", controller.updateTask);
|
|
router.delete("/:taskListId/tasks/:taskId", controller.archiveTask);
|
|
router.delete("/:taskListId/tasks/:taskId/permanent", sensitiveOpsLimiter, controller.permanentlyDeleteTask);
|
|
router.patch("/:taskListId/tasks/:taskId/restore", 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", completionController.bulkArchiveCompletions);
|
|
router.post("/:taskListId/tasks/:taskId/completions/bulk-restore", completionController.bulkRestoreCompletions);
|
|
router.get("/:taskListId/tasks/:taskId/completions/:completionId", completionController.getCompletion);
|
|
router.patch("/:taskListId/tasks/:taskId/completions/:completionId/review", completionController.reviewSubmission);
|
|
router.delete("/:taskListId/tasks/:taskId/completions/:completionId", completionController.archiveCompletion);
|
|
router.patch("/:taskListId/tasks/:taskId/completions/:completionId/restore", completionController.restoreCompletion);
|
|
|
|
module.exports = router; |