From 21ba6122f7d4a663a0db0b1dae7ed2be51d31e2c Mon Sep 17 00:00:00 2001 From: rgrgogu Date: Wed, 6 May 2026 19:04:17 +0800 Subject: [PATCH] Adjusted --- controllers/admin/users.controller.js | 23 +++++++++++++++++++++++ routes/admin/admin.routes.js | 1 + 2 files changed, 24 insertions(+) diff --git a/controllers/admin/users.controller.js b/controllers/admin/users.controller.js index 583f85a..c9a9db9 100644 --- a/controllers/admin/users.controller.js +++ b/controllers/admin/users.controller.js @@ -524,4 +524,27 @@ exports.getUserFieldValues = async (req, res) => { console.error('[ADMIN][GET USER FIELD VALUES]', err); 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); + } }; \ No newline at end of file diff --git a/routes/admin/admin.routes.js b/routes/admin/admin.routes.js index 868f39e..3508334 100644 --- a/routes/admin/admin.routes.js +++ b/routes/admin/admin.routes.js @@ -37,6 +37,7 @@ router.use(authenticate, requireAdmin(), adminLimiter); // ── User management ──────────────────────────────────────────────────────────── 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/:id', usersCtrl.getUser); router.put('/users/:id', sensitiveOpsLimiter, usersCtrl.updateUser);