WIP. Changed the way how memberCount is incremented or decremented. Fixes #12275 (#12308)

* Changed the way how memberCount is incremented or decremented.

* Updated the logic for incrementing/decrementing memberCount for parties and guilds.

* Fixed lint errors

* Added relevant comment. Changed the way how memberCount is updated to replace the usage of custom query.

* Fixed lint errors.

* Reverted changes owing to failing tests.

* Added relevant comments. Removed duplicate and unwanted code. Added await for async function call.

* Minor change due to lint error.

* Reverted changes for removing the party member when the menber leaves.
This commit is contained in:
JalanshMunshi
2020-07-03 20:21:45 +05:30
committed by GitHub
parent af1d13d3a2
commit 453d60b5bf
2 changed files with 17 additions and 20 deletions

View File

@@ -603,7 +603,14 @@ api.joinGroup = {
group.leader = user._id; // If new user is only member -> set as leader
}
group.memberCount += 1;
if (group.type === 'party') {
// For parties we count the number of members from the database to get the correct value.
// See #12275 on why this is necessary and only done for parties.
const currentMembers = await group.getMemberCount();
group.memberCount = currentMembers + 1;
} else {
group.memberCount += 1;
}
let promises = [group.save(), user.save()];
@@ -948,7 +955,14 @@ api.removeGroupMember = {
}
if (isInGroup) {
group.memberCount -= 1;
// For parties we count the number of members from the database to get the correct value.
// See #12275 on why this is necessary and only done for parties.
if (group.type === 'party') {
const currentMembers = await group.getMemberCount();
group.memberCount = currentMembers - 1;
} else {
group.memberCount -= 1;
}
if (group.quest && group.quest.leader === member._id) {
group.quest.key = undefined;