Files
starr-philproperties/routes/client/courses.routes.js
T
kennethobsequio 4e142fd90d add more things
Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
2026-07-18 14:30:13 +08:00

55 lines
2.8 KiB
JavaScript

const express = require('express');
const router = express.Router();
const ctrl = require('../../controllers/client/courses.controller');
const progressCtrl = require('../../controllers/client/course_reading_progress.controller');
// Course categories for filter chips — must come before /:courseId
router.get('/categories', ctrl.getCategories);
// Profile learning progress card — must come before /:courseId
router.get('/in-progress', progressCtrl.getMyInProgressCourses);
// Live view of every completed lesson/unit/course — must come before /:courseId
router.get('/completed', progressCtrl.getMyCompletedContent);
// UUID lookups (task requirement blocks — must come before /:courseId)
router.get('/uuid/:uuid', ctrl.getCourseByUuid);
router.get('/unit/uuid/:uuid/lessons', ctrl.getLessonsByUnitUuid);
router.get('/unit/uuid/:uuid/task-context', progressCtrl.getUnitTaskContext);
router.get('/unit/uuid/:uuid', ctrl.getUnitByUuid);
router.get('/lesson/uuid/:uuid/task-context', progressCtrl.getLessonTaskContext);
router.get('/lesson/uuid/:uuid', ctrl.getLessonByUuid);
router.get('/quiz/uuid/:uuid', ctrl.getQuizByUuid);
// Courses
router.get('/', ctrl.getCourses);
router.get('/:courseId', ctrl.getCourse);
// Unit
router.get('/:courseId/units/:unitId', ctrl.getUnit);
// Lesson
router.get('/:courseId/units/:unitId/lessons/:lessonId', ctrl.getLesson);
// Quiz (no answers)
router.get('/:courseId/units/:unitId/quiz', ctrl.getUnitQuiz);
// Assessment
router.get( '/:courseId/assessment', ctrl.getCourseAssessment);
router.post('/:courseId/assessment/:assessmentId/start', ctrl.startCourseAssessment);
router.get( '/:courseId/assessment/:assessmentId/session', ctrl.getAssessmentSession);
router.patch('/:courseId/assessment/:assessmentId/draft', ctrl.saveDraft);
router.patch('/:courseId/units/:unitId/quiz/:quizId/draft', ctrl.saveQuizDraft);
router.post('/:courseId/units/:unitId/quiz/:quizId/submit', ctrl.submitUnitQuiz);
router.post('/:courseId/assessment/:assessmentId/submit', ctrl.submitCourseAssessment);
// Reading progress
router.get( '/:courseId/progress/summary', progressCtrl.getCourseProgressSummary);
router.get( '/:courseId/progress', progressCtrl.getCourseProgress);
router.get( '/:courseId/task-context', progressCtrl.getCourseTaskContext);
router.post('/:courseId/units/:unitId/lessons/:lessonId/progress', progressCtrl.upsertLessonProgress);
router.post('/:courseId/units/:unitId/lessons/:lessonId/watch-progress', progressCtrl.upsertWatchProgress);
router.post('/:courseId/units/:unitId/lessons/:lessonId/mark-complete', progressCtrl.markLessonComplete);
module.exports = router;