Snai3i-MarketPlace / backend / src / routes / auth.router.ts
auth.router.ts
Raw
import {
  loginValidators,
  registerTeacherValidators,
  registerValidators,
} from '../services/auth/auth.validator';
import {
  Login,
  Register,
  AuthBack,
  Logout,
  ResetPassword,
  ResetTeacherPassword,
} from '../controllers/auth.controller';
import { Router } from 'express';
import { validator } from '../middlewares/validator.middleware';
import {
  checkLogs,
  isAdmin,
  isLoggedIn,
  isSchool,
} from '../middlewares/auth.middleware';

const authRouter = Router();

authRouter.route('/login').post(loginValidators, validator, Login);
authRouter
  .route('/register')
  .post(
    checkLogs,
    isLoggedIn,
    isAdmin,
    registerValidators,
    validator,
    Register
  );
authRouter
  .route('/register/teacher')
  .post(
    checkLogs,
    isLoggedIn,
    isSchool,
    registerTeacherValidators,
    validator,
    Register
  );
authRouter.route('/').get(checkLogs, isLoggedIn, AuthBack);

authRouter.route('/logout').post(checkLogs, isLoggedIn, Logout);

authRouter.route('/reset').put(checkLogs, isLoggedIn, ResetPassword);

authRouter
  .route('/reset/teacher')
  .put(checkLogs, isLoggedIn, isSchool, ResetTeacherPassword);

export default authRouter;