add: reject user

This commit is contained in:
2025-10-15 12:09:01 +07:00
parent 7ad8c6b3fe
commit c76953bf89
3 changed files with 47 additions and 1 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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 {