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 { StaffTrainingAssignment, StaffAchievement, UsersAuth, Subject } = require('../models');
const { cacheUtils } = require('../config/redis');
const { addDatabaseWriteJob } = require('../config/bullmq');
const { v4: uuidv4 } = require('uuid');
/**
@@ -55,11 +54,7 @@ class TrainingController {
for (const assignment of assignments) {
if (assignment.status !== 'completed' && new Date(assignment.deadline) < now) {
if (assignment.status !== 'overdue') {
await addDatabaseWriteJob('update', 'StaffTrainingAssignment', {
id: assignment.id,
status: 'overdue',
});
assignment.status = 'overdue';
await assignment.update({ status: 'overdue' });
}
}
}
@@ -102,16 +97,15 @@ class TrainingController {
notes: notes || null,
};
// Async write to DB via BullMQ
await addDatabaseWriteJob('create', 'StaffTrainingAssignment', assignmentData);
const newAssignment = await StaffTrainingAssignment.create(assignmentData);
// Clear cache
await cacheUtils.del(`training:assignments:${staff_id}:*`);
res.status(202).json({
res.status(201).json({
success: true,
message: 'Training assignment request queued',
data: assignmentData,
message: 'Training assignment created successfully',
data: newAssignment,
});
} catch (error) {
next(error);
@@ -142,17 +136,15 @@ class TrainingController {
});
}
await addDatabaseWriteJob('update', 'StaffTrainingAssignment', {
id,
status,
});
await assignment.update({ status });
// Clear cache
await cacheUtils.del(`training:assignments:${assignment.staff_id}:*`);
res.status(202).json({
res.status(200).json({
success: true,
message: 'Assignment status update queued',
message: 'Assignment status updated successfully',
data: assignment,
});
} catch (error) {
next(error);
@@ -199,16 +191,15 @@ class TrainingController {
verified_at: verified_by ? new Date() : null,
};
// Async write to DB via BullMQ
await addDatabaseWriteJob('create', 'StaffAchievement', achievementData);
const newAchievement = await StaffAchievement.create(achievementData);
// Clear cache
await cacheUtils.del(`training:achievements:${staff_id}`);
res.status(202).json({
res.status(201).json({
success: true,
message: 'Achievement creation request queued',
data: achievementData,
message: 'Achievement created successfully',
data: newAchievement,
});
} catch (error) {
next(error);