2024-10-15 11:57:37 +08:00
|
|
|
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 router = Router();
|
2024-07-01 11:48:56 -07:00
|
|
|
const upload = multer();
|
2024-05-27 11:57:25 -07:00
|
|
|
|
2024-10-15 11:57:37 +08:00
|
|
|
import {
|
2024-10-08 11:57:08 -04:00
|
|
|
registerUser,
|
|
|
|
|
loginUser,
|
2024-10-17 17:01:36 +05:30
|
|
|
refreshAuthToken,
|
2024-10-08 11:57:08 -04:00
|
|
|
editUser,
|
|
|
|
|
requestRecovery,
|
|
|
|
|
validateRecovery,
|
|
|
|
|
resetPassword,
|
|
|
|
|
checkSuperadminExists,
|
|
|
|
|
getAllUsers,
|
|
|
|
|
deleteUser,
|
2024-10-15 11:57:37 +08:00
|
|
|
} from "../controllers/authController.js";
|
2024-05-09 17:06:00 -04:00
|
|
|
|
2024-06-11 10:36:56 -07:00
|
|
|
//Auth routes
|
2024-10-01 10:29:32 +08:00
|
|
|
router.post("/register", upload.single("profileImage"), registerUser);
|
|
|
|
|
router.post("/login", loginUser);
|
2024-10-17 17:01:36 +05:30
|
|
|
router.post("/refresh", refreshAuthToken);
|
2024-10-15 11:57:37 +08:00
|
|
|
router.put("/user/:userId", upload.single("profileImage"), verifyJWT, editUser);
|
2024-10-01 10:29:32 +08:00
|
|
|
router.get("/users/superadmin", checkSuperadminExists);
|
2024-10-08 11:57:08 -04:00
|
|
|
router.get("/users", verifyJWT, isAllowed(["admin", "superadmin"]), getAllUsers);
|
|
|
|
|
router.delete("/user/:userId", verifyJWT, verifyOwnership(User, "userId"), deleteUser);
|
2024-05-09 17:06:00 -04:00
|
|
|
|
2024-06-10 15:54:45 -07:00
|
|
|
//Recovery routes
|
2024-10-01 10:29:32 +08:00
|
|
|
router.post("/recovery/request", requestRecovery);
|
|
|
|
|
router.post("/recovery/validate", validateRecovery);
|
|
|
|
|
router.post("/recovery/reset/", resetPassword);
|
2024-06-10 15:54:45 -07:00
|
|
|
|
2024-10-15 11:57:37 +08:00
|
|
|
export default router;
|