Allow SuperAdmin to disable SMS, email, and bot from dashboard settings on top of env flags. Add admin password reset with credentials SMS, plus payment discounts, notes, and payable amount handling.
33 lines
1.7 KiB
JavaScript
33 lines
1.7 KiB
JavaScript
// /components/users/userRoutes.js
|
|
|
|
const express = require('express');
|
|
const userController = require('./userController');
|
|
const {
|
|
validateSignUp,
|
|
validateCreateUserAdmin,
|
|
validateUpdateUser,
|
|
validateEnroll
|
|
} = require('./userValidator');
|
|
const authMiddleware = require('../../middlewares/authMiddleware');
|
|
const perm = require('../../middlewares/permissionMiddleware');
|
|
const { PERMISSIONS } = require('../../constants/permissions');
|
|
|
|
const router = express.Router();
|
|
|
|
// User Scope (Self-Service)
|
|
router.post('/user/sign-up', validateSignUp, userController.signUp);
|
|
router.get('/user/get-self', authMiddleware, userController.getSelf);
|
|
router.put('/user/update-self', authMiddleware, validateUpdateUser, userController.updateSelf);
|
|
|
|
// Admin Scope
|
|
router.post('/admin/create', authMiddleware, perm.requires(PERMISSIONS.USERS_CREATE), validateCreateUserAdmin, userController.createAdmin);
|
|
router.get('/admin/get-all', authMiddleware, perm.requires(PERMISSIONS.USERS_READ), userController.getAll);
|
|
router.get('/admin/search', authMiddleware, perm.requires(PERMISSIONS.USERS_SEARCH), userController.search);
|
|
router.get('/admin/get-one/:id', authMiddleware, perm.requires(PERMISSIONS.USERS_READ), userController.getOne);
|
|
router.put('/admin/update/:id', authMiddleware, perm.requires(PERMISSIONS.USERS_UPDATE), validateUpdateUser, userController.update);
|
|
router.post('/admin/:id/reset-password-sms', authMiddleware, perm.requires(PERMISSIONS.USERS_UPDATE), userController.resetPasswordAndSendSms);
|
|
router.delete('/admin/delete/:id', authMiddleware, perm.requires(PERMISSIONS.USERS_DELETE), userController.delete);
|
|
router.post('/admin/:userId/enroll', authMiddleware, perm.requires(PERMISSIONS.USERS_ENROLL), validateEnroll, userController.enroll);
|
|
|
|
module.exports = router;
|