This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
const { UsersAuth, UserProfile } = require('../models');
|
||||
const { cacheUtils } = require('../config/redis');
|
||||
const { addDatabaseWriteJob } = require('../config/bullmq');
|
||||
const bcrypt = require('bcrypt');
|
||||
const jwt = require('jsonwebtoken');
|
||||
const crypto = require('crypto');
|
||||
@@ -404,21 +403,20 @@ class UserController {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new user (async via BullMQ)
|
||||
* Create new user
|
||||
*/
|
||||
async createUser(req, res, next) {
|
||||
try {
|
||||
const userData = req.body;
|
||||
|
||||
const job = await addDatabaseWriteJob('create', 'UsersAuth', userData);
|
||||
const newUser = await UsersAuth.create(userData);
|
||||
|
||||
await cacheUtils.deletePattern('users:list:*');
|
||||
|
||||
res.status(202).json({
|
||||
res.status(201).json({
|
||||
success: true,
|
||||
message: 'User creation job queued',
|
||||
jobId: job.id,
|
||||
data: userData,
|
||||
message: 'User created successfully',
|
||||
data: newUser,
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
@@ -426,25 +424,30 @@ class UserController {
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user (async via BullMQ)
|
||||
* Update user
|
||||
*/
|
||||
async updateUser(req, res, next) {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
const updates = req.body;
|
||||
|
||||
const job = await addDatabaseWriteJob('update', 'UsersAuth', {
|
||||
id,
|
||||
updates,
|
||||
});
|
||||
const user = await UsersAuth.findByPk(id);
|
||||
if (!user) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: 'User not found',
|
||||
});
|
||||
}
|
||||
|
||||
await user.update(updates);
|
||||
|
||||
await cacheUtils.delete(`user:${id}`);
|
||||
await cacheUtils.deletePattern('users:list:*');
|
||||
|
||||
res.status(202).json({
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
message: 'User update job queued',
|
||||
jobId: job.id,
|
||||
message: 'User updated successfully',
|
||||
data: user,
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
@@ -458,18 +461,23 @@ class UserController {
|
||||
try {
|
||||
const { id } = req.params;
|
||||
|
||||
const job = await addDatabaseWriteJob('update', 'UsersAuth', {
|
||||
id,
|
||||
updates: { is_active: false },
|
||||
});
|
||||
const user = await UsersAuth.findByPk(id);
|
||||
if (!user) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
message: 'User not found',
|
||||
});
|
||||
}
|
||||
|
||||
await user.update({ is_active: false });
|
||||
|
||||
await cacheUtils.delete(`user:${id}`);
|
||||
await cacheUtils.deletePattern('users:list:*');
|
||||
|
||||
res.status(202).json({
|
||||
res.status(200).json({
|
||||
success: true,
|
||||
message: 'User deletion job queued',
|
||||
jobId: job.id,
|
||||
message: 'User deactivated successfully',
|
||||
data: user,
|
||||
});
|
||||
} catch (error) {
|
||||
next(error);
|
||||
|
||||
Reference in New Issue
Block a user