feat: Implement cuser management with role updates, activation, and deactivation.
This commit is contained in:
parent
a59b144ebf
commit
1caeac6226
5 changed files with 100 additions and 18 deletions
|
|
@ -6,7 +6,6 @@ import jwt from 'jsonwebtoken';
|
|||
import {
|
||||
ListUsersResponse,
|
||||
GetUserResponse,
|
||||
ActivateAccount,
|
||||
UpdateUser,
|
||||
UpdateRoleResponse,
|
||||
DeactivateAccountResponse,
|
||||
|
|
@ -58,6 +57,48 @@ export class UserManagementService {
|
|||
}
|
||||
}
|
||||
|
||||
async updateUserRole(id: number, role_id: number): Promise<UpdateRoleResponse> {
|
||||
try {
|
||||
const user = await prisma.user.findUnique({ where: { id } });
|
||||
if (!user) throw new UnauthorizedError('User not found');
|
||||
|
||||
const role = await prisma.role.findUnique({ where: { id: role_id } });
|
||||
if (!role) throw new UnauthorizedError('Role not found');
|
||||
|
||||
await prisma.user.update({
|
||||
where: { id },
|
||||
data: { role_id }
|
||||
});
|
||||
|
||||
return {
|
||||
code: 200,
|
||||
message: 'User role updated successfully'
|
||||
};
|
||||
} catch (error) {
|
||||
logger.error('Failed to update user role', { error });
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async deleteUser(id: number): Promise<DeactivateAccountResponse> {
|
||||
try {
|
||||
const user = await prisma.user.findUnique({ where: { id } });
|
||||
if (!user) throw new UnauthorizedError('User not found');
|
||||
|
||||
await prisma.user.update({
|
||||
where: { id },
|
||||
data: { is_deactivated: true }
|
||||
});
|
||||
return {
|
||||
code: 200,
|
||||
message: 'User deactivated successfully'
|
||||
};
|
||||
} catch (error) {
|
||||
logger.error('Failed to deactivate user', { error });
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async deactivateAccount(token: string): Promise<DeactivateAccountResponse> {
|
||||
try {
|
||||
// Decode JWT token to get user ID
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue