44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const subjectController = require('../controllers/subjectController');
|
|
|
|
/**
|
|
* Subject Routes
|
|
*/
|
|
|
|
// GET /api/subjects - Get all subjects with pagination
|
|
router.get('/', subjectController.getAllSubjects);
|
|
|
|
// GET /api/subjects/active - Get all active subjects
|
|
router.get('/active', subjectController.getActiveSubjects);
|
|
|
|
// GET /api/subjects/datatypes/schema - Get subject datatypes
|
|
router.get('/datatypes/schema', subjectController.getSubjectDatatypes);
|
|
|
|
// GET /api/subjects/code/:code - Get subject by code
|
|
router.get('/code/:code', subjectController.getSubjectByCode);
|
|
|
|
// GET /api/subjects/:id - Get subject by ID
|
|
router.get('/:id', subjectController.getSubjectById);
|
|
|
|
// GET /api/subjects/:id/chapters - Get chapters by subject
|
|
router.get('/:id/chapters', subjectController.getChaptersBySubject);
|
|
|
|
// POST /api/subjects - Create new subject
|
|
router.post('/', subjectController.createSubject);
|
|
|
|
// PUT /api/subjects/:id - Update subject
|
|
router.put('/:id', subjectController.updateSubject);
|
|
|
|
// DELETE /api/subjects/:id - Delete subject
|
|
router.delete('/:id', subjectController.deleteSubject);
|
|
|
|
// ============ Nested Chapter Routes ============
|
|
// POST /api/subjects/:subjectId/chapters - Add chapter to subject
|
|
router.post('/:subjectId/chapters', subjectController.addChapterToSubject);
|
|
|
|
// DELETE /api/subjects/:subjectId/chapters/:chapterId - Remove chapter from subject
|
|
router.delete('/:subjectId/chapters/:chapterId', subjectController.removeChapterFromSubject);
|
|
|
|
module.exports = router;
|