From 754d46f1f32347f484e9132a7afc018e02e3ae63 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 25 Jul 2023 21:16:03 +0200 Subject: [PATCH] Optimise looking for party request (#14773) * Reset looking for party state if a user joins a party * filter out users that already received an invite in query * fix(lfp): add back in-party filter Temporary until migration to clear seeking flag from users in party --------- Co-authored-by: SabreCat --- website/server/controllers/api-v3/groups.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/server/controllers/api-v3/groups.js b/website/server/controllers/api-v3/groups.js index 85ce52edae..62c5554a93 100644 --- a/website/server/controllers/api-v3/groups.js +++ b/website/server/controllers/api-v3/groups.js @@ -590,9 +590,10 @@ api.joinGroup = { if (userPreviousParty) await userPreviousParty.leave(user); } } - // Clear all invitations of new user + // Clear all invitations of new user and reset looking for party state user.invitations.parties = []; user.invitations.party = {}; + user.party.seeking = null; // invite new user to pending quest if (group.quest.key && !group.quest.active) { @@ -1393,6 +1394,7 @@ api.getLookingForParty = { const seekers = await User .find({ 'party.seeking': { $exists: true }, + 'invitations.party.id': { $exists: false }, 'auth.timestamps.loggedin': { $gt: moment().subtract(7, 'days').toDate(), }, @@ -1408,7 +1410,6 @@ api.getLookingForParty = { const filteredSeekers = seekers.filter(seeker => { if (seeker.party._id) return false; - if (seeker.invitations.party.id) return false; if (seeker.flags.chatRevoked) return false; if (seeker.auth.blocked) return false; if (seeker.inbox.blocks.indexOf(user._id) !== -1) return false;