// /components/classes/classRoutes.js 'use strict'; const express = require('express'); const classController = require('./classController'); const authMiddleware = require('../../middlewares/authMiddleware'); const perm = require('../../middlewares/permissionMiddleware'); const { PERMISSIONS } = require('../../constants/permissions'); const router = express.Router(); // Public Scope router.get('/user/get-all', classController.getPublicClasses); router.get('/user/get-one/:id', classController.getPublicOne); router.use(authMiddleware); // User Scope router.get('/user/my-classes', perm.requires(PERMISSIONS.CLASSES_READ), classController.getMyClasses); // Admin Scope router.get('/admin/get-all', perm.requires(PERMISSIONS.CLASSES_READ), classController.getAll); router.get('/admin/get-one/:id', perm.requires(PERMISSIONS.CLASSES_READ), classController.getOne); router.post('/admin/create', perm.requires(PERMISSIONS.CLASSES_CREATE), classController.create); router.put('/admin/update/:id', perm.requires(PERMISSIONS.CLASSES_UPDATE), classController.update); router.delete('/admin/delete/:id', perm.requires(PERMISSIONS.CLASSES_DELETE), classController.delete); router.post('/admin/restore/:id', perm.requires(PERMISSIONS.CLASSES_DELETE), classController.restore); router.post('/admin/:id/register-users', perm.requires(PERMISSIONS.CLASSES_REGISTER_USERS), classController.registerUsers); router.delete('/admin/:id/students/:userId', perm.requires(PERMISSIONS.CLASSES_REGISTER_USERS), classController.removeUser); module.exports = router;