update
All checks were successful
Deploy to Production / deploy (push) Successful in 21s

This commit is contained in:
silverpro89
2026-01-28 11:21:21 +07:00
parent 57c45d27a3
commit 3791b7cae1
23 changed files with 1033 additions and 317 deletions

View File

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