const verifySignUp = require('./verifySignUp'); const authJwt = require('./verifyJwtToken'); module.exports = function(app) { const authController = require('../controller/authenticationController.js'); const usersListController = require('../controller/usersListController.js'); const userController = require('../controller/userController.js'); const levelController = require('../controller/levelController.js'); const courseController = require('../controller/courseController.js'); const lessonController = require('../controller/lessonController.js'); const materialController = require('../controller/materialController.js'); // authentication [Tested] app.post('/api/auth/signup', [verifySignUp.checkDuplicateUserNameOrEmail, verifySignUp.checkRolesExisted], authController.signup); app.post('/api/auth/signin', authController.signin); // list users of roles [Testing - But doesn't return any user] app.get('/api/students', [authJwt.verifyToken , authJwt.isAdmin], usersListController.allStudents); // Administration Boards [Tested] app.get('/api/test/instructor', [authJwt.verifyToken, authJwt.isInstructorOrAdmin], usersListController.managementBoard); app.get('/api/test/admin', [authJwt.verifyToken, authJwt.isAdmin], usersListController.adminBoard); // get user [Testing - return null] app.get('/api/user', [authJwt.verifyToken, authJwt.isAdmin], userController.getUser); // level app.post('/api/level', [authJwt.verifyToken, authJwt.isAdmin], levelController.createLevel); app.get('/api/levels', [authJwt.verifyToken, authJwt.isAdmin], levelController.getLevels); app.get('/api/level', [authJwt.verifyToken, authJwt.isAdmin], levelController.getLevel); // course app.post('/api/course', [authJwt.verifyToken, authJwt.isAdmin], courseController.createCourse); app.post('/api/enrollcourse', [authJwt.verifyToken], courseController.enrollCourse); app.get('/api/courses', [authJwt.verifyToken], courseController.getCourses); app.get('/api/course', [authJwt.verifyToken, authJwt.isAdmin], courseController.getCourse); // lesson app.get('/api/lessons', [authJwt.verifyToken], lessonController.getLessons); // material app.get('/api/materials', [authJwt.verifyToken], materialController.getMaterials); app.post('/api/markmaterial', [authJwt.verifyToken], materialController.markMaterial); }