add: reject user
This commit is contained in:
@@ -68,6 +68,17 @@ class UserController {
|
||||
return res.status(response.statusCode).json(response);
|
||||
}
|
||||
|
||||
// Reject user
|
||||
static async reject(req, res) {
|
||||
const { id } = req.params;
|
||||
const approverId = req.user.user_id;
|
||||
|
||||
const updatedUser = await UserService.rejectUser(id, approverId);
|
||||
const response = await setResponse(updatedUser, 'User rejected successfully');
|
||||
|
||||
return res.status(response.statusCode).json(response);
|
||||
}
|
||||
|
||||
// Soft delete user
|
||||
static async delete(req, res) {
|
||||
const { id } = req.params;
|
||||
|
||||
@@ -20,4 +20,7 @@ router.route('/change-password/:id')
|
||||
router.route('/:id/approve')
|
||||
.put(verifyToken.verifyAccessToken, verifyAccess(), UserController.approve);
|
||||
|
||||
router.route('/:id/reject')
|
||||
.put(verifyToken.verifyAccessToken, verifyAccess(), UserController.reject);
|
||||
|
||||
module.exports = router;
|
||||
|
||||
@@ -6,6 +6,7 @@ const {
|
||||
createUserDb,
|
||||
updateUserDb,
|
||||
approveUserDb,
|
||||
rejectUserDb,
|
||||
deleteUserDb,
|
||||
changeUserPasswordDb
|
||||
} = require('../db/user.db');
|
||||
@@ -114,10 +115,14 @@ class UserService {
|
||||
throw new ErrorHandler(404, 'User not found');
|
||||
}
|
||||
|
||||
if (existingUser.is_approve) {
|
||||
if (existingUser.is_approve === 2) {
|
||||
throw new ErrorHandler(400, 'User is already approved');
|
||||
}
|
||||
|
||||
if (existingUser.is_approve === 0) {
|
||||
throw new ErrorHandler(400, 'User is already rejected');
|
||||
}
|
||||
|
||||
const updatedUser = await approveUserDb(userId, approverId);
|
||||
return updatedUser;
|
||||
} catch (error) {
|
||||
@@ -125,6 +130,33 @@ class UserService {
|
||||
}
|
||||
}
|
||||
|
||||
// Reject user
|
||||
static async rejectUser(userId, approverId) {
|
||||
try {
|
||||
if (!userId) {
|
||||
throw new ErrorHandler(400, 'User ID is required');
|
||||
}
|
||||
|
||||
const existingUser = await getUserByIdDb(userId);
|
||||
if (!existingUser) {
|
||||
throw new ErrorHandler(404, 'User not found');
|
||||
}
|
||||
|
||||
if (existingUser.is_approve === 2) {
|
||||
throw new ErrorHandler(400, 'User is already approved');
|
||||
}
|
||||
|
||||
if (existingUser.is_approve === 0) {
|
||||
throw new ErrorHandler(400, 'User is already rejected');
|
||||
}
|
||||
|
||||
const updatedUser = await rejectUserDb(userId, approverId);
|
||||
return updatedUser;
|
||||
} catch (error) {
|
||||
throw new ErrorHandler(error.statusCode || 500, error.message);
|
||||
}
|
||||
}
|
||||
|
||||
// Soft delete user
|
||||
static async deleteUser(id, userId) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user