const router = require("express").Router(); const { verifyJWT } = require("../middleware/verifyJWT"); const { verifyOwnership } = require("../middleware/verifyOwnership"); const { isAllowed } = require("../middleware/isAllowed"); const multer = require("multer"); const upload = multer(); const User = require("../db/models/User"); const { registerUser, loginUser, editUser, requestRecovery, validateRecovery, resetPassword, checkSuperadminExists, getAllUsers, deleteUser, } = require("../controllers/authController"); //Auth routes router.post("/register", upload.single("profileImage"), registerUser); router.post("/login", loginUser); router.put("/user/:userId", upload.single("profileImage"), verifyJWT, editUser); router.get("/users/superadmin", checkSuperadminExists); router.get("/users", verifyJWT, isAllowed(["admin", "superadmin"]), getAllUsers); router.delete("/user/:userId", verifyJWT, verifyOwnership(User, "userId"), deleteUser); //Recovery routes router.post("/recovery/request", requestRecovery); router.post("/recovery/validate", validateRecovery); router.post("/recovery/reset/", resetPassword); module.exports = router;