StMarkSchoolApplication / app / router / router.js
router.js
Raw
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);
}