This commit is contained in:
rgrgogu
2026-05-06 19:04:17 +08:00
parent d5fcc574a4
commit 21ba6122f7
2 changed files with 24 additions and 0 deletions
+23
View File
@@ -525,3 +525,26 @@ exports.getUserFieldValues = async (req, res) => {
return R.error(res, 'Could not retrieve field values.', 500); return R.error(res, 'Could not retrieve field values.', 500);
} }
}; };
exports.getArchivedUsers = async (req, res) => {
try {
const result = await paginate(mdl_Users, req, {
excludeAttributes: usersExclude,
jsonbSchemas: usersSchemas,
jsonbColumn: 'personal_info',
auditOptions: { mdl_Users, parentAlias: 'User' },
findOptions: {
paranoid: false, // ← include soft-deleted rows
where: {
deletedAt: { [Op.ne]: null }, // ← only archived ones
is_active: false,
},
},
});
return R.success(res, 'Archived users retrieved.', result);
} catch (err) {
console.error('[ADMIN][GET ARCHIVED USERS]', err);
return R.error(res, 'Could not retrieve archived users.', 500);
}
};
+1
View File
@@ -37,6 +37,7 @@ router.use(authenticate, requireAdmin(), adminLimiter);
// ── User management ──────────────────────────────────────────────────────────── // ── User management ────────────────────────────────────────────────────────────
router.get('/users/field-values', usersCtrl.getUserFieldValues); // ← before /:id router.get('/users/field-values', usersCtrl.getUserFieldValues); // ← before /:id
router.get('/users/archived', usersCtrl.getArchivedUsers); // ← before /:id
router.get('/users', usersCtrl.getUsers); router.get('/users', usersCtrl.getUsers);
router.get('/users/:id', usersCtrl.getUser); router.get('/users/:id', usersCtrl.getUser);
router.put('/users/:id', sensitiveOpsLimiter, usersCtrl.updateUser); router.put('/users/:id', sensitiveOpsLimiter, usersCtrl.updateUser);