|
1 | 1 | const externalAccountsModel = require("../models/external-accounts");
|
2 | 2 | const { SOMETHING_WENT_WRONG, INTERNAL_SERVER_ERROR } = require("../constants/errorMessages");
|
3 | 3 | const { getDiscordMembers } = require("../services/discordService");
|
4 |
| -const { addOrUpdate } = require("../models/users"); |
| 4 | +const { addOrUpdate, getUsersByRole } = require("../models/users"); |
5 | 5 | const { retrieveDiscordUsers } = require("../services/dataAccessLayer");
|
6 | 6 | const logger = require("../utils/logger");
|
7 | 7 |
|
@@ -56,6 +56,7 @@ const syncExternalAccountData = async (req, res) => {
|
56 | 56 | const rdsUserDataMap = {};
|
57 | 57 | const updateUserDataPromises = [];
|
58 | 58 | const userUpdatedWithInDiscordFalse = [];
|
| 59 | + const updateArchivedPromises = []; |
59 | 60 |
|
60 | 61 | rdsUserData.forEach((rdsUser) => {
|
61 | 62 | rdsUserDataMap[rdsUser.discordId] = {
|
@@ -90,10 +91,26 @@ const syncExternalAccountData = async (req, res) => {
|
90 | 91 |
|
91 | 92 | await Promise.all(updateUserDataPromises);
|
92 | 93 |
|
| 94 | + const inDiscordUsers = await getUsersByRole("in_discord"); |
| 95 | + inDiscordUsers.forEach((user) => { |
| 96 | + if (user.roles.archived === true) { |
| 97 | + const userData = { |
| 98 | + roles: { |
| 99 | + ...user.roles, |
| 100 | + archived: false, |
| 101 | + }, |
| 102 | + }; |
| 103 | + updateArchivedPromises.push(addOrUpdate(userData, user.id)); |
| 104 | + } |
| 105 | + }); |
| 106 | + |
| 107 | + await Promise.all(updateArchivedPromises); |
| 108 | + |
93 | 109 | return res.json({
|
94 | 110 | rdsUsers: rdsUserData.length,
|
95 | 111 | discordUsers: discordUserData.length,
|
96 | 112 | userUpdatedWithInDiscordFalse: userUpdatedWithInDiscordFalse.length,
|
| 113 | + usersMarkedUnArchived: updateArchivedPromises.length, |
97 | 114 | message: "Data Sync Complete",
|
98 | 115 | });
|
99 | 116 | } catch (err) {
|
|
0 commit comments