Skip to content

Commit 505592f

Browse files
authored
Efficient API calls (#465)
* Efficient API calls * Remove hidden whitespace * Fix linter
1 parent 947283a commit 505592f

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/components/cron.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,22 +138,26 @@ export const createCoffeeChatCron = (client: Client): CronJob =>
138138
export const assignCodeyRoleForLeaderboard = (client: Client): CronJob =>
139139
new CronJob('0 0 0 */1 * *', async function () {
140140
const leaderboard = await getCoinLeaderboard(NUMBER_USERS_TO_ASSIGN_ROLE);
141+
const leaderboardIds: Set<string> = new Set(leaderboard.map((entry) => entry.user_id));
141142
const guild = client.guilds.resolve(TARGET_GUILD_ID);
142143
if (!guild) {
143144
throw new CodeyUserError(undefined, 'guild not found');
144145
}
145146
const members = await guild.members.fetch();
146147
// Removing role from previous members
147148
const guildMembersPreviousRole = await loadRoleMembers(CODEY_COIN_ROLE_ID);
149+
const previousIds: Set<string> = new Set(guildMembersPreviousRole.map((member) => member.id));
150+
const roleName: string = await getRoleName(CODEY_COIN_ROLE_ID);
151+
148152
guildMembersPreviousRole.forEach(async (member) => {
149-
if (member) {
150-
await updateMemberRole(member, await getRoleName(CODEY_COIN_ROLE_ID), false);
153+
if (member && !leaderboardIds.has(member.id)) {
154+
await updateMemberRole(member, roleName, false);
151155
}
152156
});
153-
leaderboard.forEach(async (lbUserCoinEntry) => {
154-
const memberToUpdate = members.get(lbUserCoinEntry.user_id);
155-
if (memberToUpdate) {
156-
await updateMemberRole(memberToUpdate, await getRoleName(CODEY_COIN_ROLE_ID), true);
157+
leaderboardIds.forEach(async (user_id) => {
158+
const memberToUpdate = members.get(user_id);
159+
if (memberToUpdate && !previousIds.has(user_id)) {
160+
await updateMemberRole(memberToUpdate, roleName, true);
157161
}
158162
});
159163
});

0 commit comments

Comments
 (0)