import { Router } from 'express'; import { validator } from '../middlewares/validator.middleware'; import { checkLogs, isAdmin, isInstDesign, isLoggedIn, isSchool, isTeacher, } from '../middlewares/auth.middleware'; import { snai3iCourseValidators, marketCourseValidators, courseStatusValidator, } from '../services/course/course.validator'; import { CreateMarketCourse, CreateSnai3iCourse, DeleteCourse, GetCoursesByInstructor, GetCoursesBySchool, GetCoursesByTeacher, GetMarketCourses, GetActiveMarketCourses, GetMarketCourseById, GetSnai3iCourseById, GetActiveSnai3iCourses, GetAllSnai3iCourses, UpdateCourseStatus, UpdateMarketCourse, UpdateSnai3iCourse, GetTags } from '../controllers/course.controller'; const courseRouter = Router(); courseRouter.route('/snai3i').get(checkLogs, isLoggedIn, GetActiveSnai3iCourses); courseRouter.route('/market').get(GetActiveMarketCourses); courseRouter .route('/market/all') .get(checkLogs, isLoggedIn, isAdmin, GetMarketCourses); courseRouter .route('/snai3i/all') .get(checkLogs, isLoggedIn, isAdmin, GetAllSnai3iCourses); courseRouter .route('/instructor/:inst_designer_id') .get(checkLogs, isLoggedIn, isInstDesign, GetCoursesByInstructor); courseRouter .route('/school/:school_id') .get(checkLogs, isLoggedIn, isSchool, GetCoursesBySchool); courseRouter .route('/instructor/:school_id') .get(checkLogs, isLoggedIn, isSchool, GetCoursesBySchool); courseRouter .route('/teacher/:teacher_id') .get(checkLogs, isLoggedIn, isTeacher, GetCoursesByTeacher); courseRouter .route('/snai3i/:course_id') .get(checkLogs, isLoggedIn, GetSnai3iCourseById); courseRouter.route('/market/:course_id').get(GetMarketCourseById); courseRouter .route('/create/snai3i') .post( checkLogs, isLoggedIn, isAdmin, snai3iCourseValidators, validator, CreateSnai3iCourse ); courseRouter .route('/create/market') .post( checkLogs, isLoggedIn, isInstDesign, marketCourseValidators, validator, CreateMarketCourse ); courseRouter .route('/delete/:course_id') .delete(checkLogs, isLoggedIn, isInstDesign, DeleteCourse); courseRouter .route('/update/snai3i/:course_id') .put( checkLogs, isLoggedIn, isInstDesign, snai3iCourseValidators, validator, UpdateSnai3iCourse ); courseRouter .route('/update/market/:course_id') .put( checkLogs, isLoggedIn, isInstDesign, marketCourseValidators, validator, UpdateMarketCourse ); courseRouter .route('/update/status/:course_id') .put( checkLogs, isLoggedIn, isAdmin, courseStatusValidator, validator, UpdateCourseStatus ); courseRouter.route('/tags').get(GetTags); export default courseRouter;