mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-27 04:09:46 -06:00
60 lines
1.4 KiB
JavaScript
Executable File
60 lines
1.4 KiB
JavaScript
Executable File
import { Router } from "express";
|
|
import { verifyJWT } from "../middleware/verifyJWT.js";
|
|
import { verifyOwnership } from "../middleware/verifyOwnership.js";
|
|
import { isAllowed } from "../middleware/isAllowed.js";
|
|
import multer from "multer";
|
|
import User from "../db/models/User.js";
|
|
|
|
const upload = multer();
|
|
|
|
class AuthRoutes {
|
|
constructor(authController) {
|
|
this.router = Router();
|
|
this.authController = authController;
|
|
this.initRoutes();
|
|
}
|
|
|
|
initRoutes() {
|
|
this.router.post(
|
|
"/register",
|
|
upload.single("profileImage"),
|
|
this.authController.registerUser
|
|
);
|
|
this.router.post("/login", this.authController.loginUser);
|
|
|
|
this.router.put(
|
|
"/user/:userId",
|
|
upload.single("profileImage"),
|
|
verifyJWT,
|
|
this.authController.editUser
|
|
);
|
|
|
|
this.router.get("/users/superadmin", this.authController.checkSuperadminExists);
|
|
|
|
this.router.get(
|
|
"/users",
|
|
verifyJWT,
|
|
isAllowed(["admin", "superadmin"]),
|
|
this.authController.getAllUsers
|
|
);
|
|
|
|
this.router.delete(
|
|
"/user/:userId",
|
|
verifyJWT,
|
|
verifyOwnership(User, "userId"),
|
|
this.authController.deleteUser
|
|
);
|
|
|
|
// Recovery routes
|
|
this.router.post("/recovery/request", this.authController.requestRecovery);
|
|
this.router.post("/recovery/validate", this.authController.validateRecovery);
|
|
this.router.post("/recovery/reset/", this.authController.resetPassword);
|
|
}
|
|
|
|
getRouter() {
|
|
return this.router;
|
|
}
|
|
}
|
|
|
|
export default AuthRoutes;
|