Files
sena_db_api_layer/routes/subjectRoutes.js
Ken 6287a019e3
All checks were successful
Deploy to Production / deploy (push) Successful in 20s
update
2026-02-27 09:38:39 +07:00

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;