Files
starr-philproperties/routes/admin/courses.routes.js
T
2026-05-16 11:04:36 +08:00

31 lines
2.4 KiB
JavaScript

const router = require("express").Router();
const controller = require("../../controllers/admin/courses.controller");
const { sensitiveOpsLimiter } = require("../../middleware/rateLimiter.middleware");
// ─── Courses ──────────────────────────────────────────────────────────────────
router.get("/", controller.getCourses);
router.post("/", sensitiveOpsLimiter, controller.createCourse);
router.get("/:courseId", controller.getCourse);
router.patch("/:courseId", sensitiveOpsLimiter, controller.updateCourse);
router.delete("/:courseId", sensitiveOpsLimiter, controller.deleteCourse);
// ─── Units ────────────────────────────────────────────────────────────────────
router.get("/:courseId/units", controller.getUnits);
router.post("/:courseId/units", sensitiveOpsLimiter, controller.createUnit);
router.get("/:courseId/units/:unitId", controller.getUnit);
router.patch("/:courseId/units/:unitId", sensitiveOpsLimiter, controller.updateUnit);
router.delete("/:courseId/units/:unitId", sensitiveOpsLimiter, controller.deleteUnit);
// ─── Lessons ──────────────────────────────────────────────────────────────────
router.get("/:courseId/units/:unitId/lessons", controller.getLessons);
router.post("/:courseId/units/:unitId/lessons", sensitiveOpsLimiter, controller.createLesson);
router.get("/:courseId/units/:unitId/lessons/:lessonId", controller.getLesson);
router.patch("/:courseId/units/:unitId/lessons/:lessonId", sensitiveOpsLimiter, controller.updateLesson);
router.delete("/:courseId/units/:unitId/lessons/:lessonId", sensitiveOpsLimiter, controller.deleteLesson);
// ─── Lesson Page ──────────────────────────────────────────────────────────────
router.get("/:courseId/units/:unitId/lessons/:lessonId/page", controller.getLessonPage);
router.put("/:courseId/units/:unitId/lessons/:lessonId/page", sensitiveOpsLimiter, controller.upsertLessonPage);
module.exports = router;