Snai3i-MarketPlace / backend / src / routes / users.router.ts
users.router.ts
Raw
import {
  GetUsersByAdmin,
  GetUserById,
  UpdateUserById,
  DeleteUserById,
  GetTeachersBySchool,
  GetUsersBySuperAdmin,
  bulkDeleteUsers,
  bulkDeleteTeachers,
  GetSchools,
  GetTeachers,
  GetTeacherById,
  UpdateTeacherById,
  DeleteTeacherById,
  GetInstDesigners,
  GetStatistics,
} from '../controllers/users.controller';
import { Router } from 'express';
import {
  checkLogs,
  isAdmin,
  isLoggedIn,
  isSchool,
  isSuperAdmin,
} from '../middlewares/auth.middleware';

const usersRouter = Router();

usersRouter.route('/statistics').get(checkLogs, isLoggedIn, GetStatistics);
usersRouter.route('/').get(checkLogs, isLoggedIn, isAdmin, GetUsersByAdmin);
usersRouter
  .route('/super')
  .get(checkLogs, isLoggedIn, isSuperAdmin, GetUsersBySuperAdmin);
usersRouter.route('/schools').get(checkLogs, isLoggedIn, GetSchools);
usersRouter.route('/teachers').get(checkLogs, isLoggedIn, GetTeachers);
usersRouter
  .route('/teachers/:schoolId')
  .get(checkLogs, isLoggedIn, GetTeachersBySchool);
usersRouter
  .route('/teacher/:teacherId')
  .get(checkLogs, isLoggedIn, isSchool, GetTeacherById)
  .delete(checkLogs, isLoggedIn, isSchool, DeleteTeacherById)
  .put(checkLogs, isLoggedIn, isSchool, UpdateTeacherById);
usersRouter
  .route('/instDesigners')
  .get(checkLogs, isLoggedIn, isAdmin, GetInstDesigners);
usersRouter
  .route('/:userId')
  .get(checkLogs, isLoggedIn, GetUserById)
  .put(checkLogs, isLoggedIn, isAdmin, UpdateUserById)
  .delete(checkLogs, isLoggedIn, isAdmin, DeleteUserById);

usersRouter
  .route('/bulkDelete/teachers')
  .post(checkLogs, isLoggedIn, isSchool, bulkDeleteTeachers);

usersRouter
  .route('/bulkDelete')
  .post(checkLogs, isLoggedIn, isAdmin, bulkDeleteUsers);

export default usersRouter;