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