// /components/courses/courseRoutes.js const express = require('express'); const courseController = require('./courseController'); const { validateCreateCourse, validateUpdateCourse } = require('./courseValidator'); const authMiddleware = require('../../middlewares/authMiddleware'); const perm = require('../../middlewares/permissionMiddleware'); const { PERMISSIONS } = require('../../constants/permissions'); const router = express.Router(); // User Scope (Public or Authenticated reading) router.get('/user/get-all', courseController.getAll); router.get('/user/get-one/:id', courseController.getOne); // Admin Scope router.post('/admin/create', authMiddleware, perm.requires(PERMISSIONS.COURSES_CREATE), validateCreateCourse, courseController.create); router.get('/admin/get-all', authMiddleware, perm.requires(PERMISSIONS.COURSES_READ), courseController.getAll); router.get('/admin/search', authMiddleware, perm.requires(PERMISSIONS.COURSES_SEARCH), courseController.search); router.get('/admin/get-one/:id', authMiddleware, perm.requires(PERMISSIONS.COURSES_READ), courseController.getOne); router.put('/admin/update/:id', authMiddleware, perm.requires(PERMISSIONS.COURSES_UPDATE), validateUpdateCourse, courseController.update); router.delete('/admin/delete/:id', authMiddleware, perm.requires(PERMISSIONS.COURSES_DELETE), courseController.delete); module.exports = router;