Correct timing on updating Group Plan member quantities (#10589)

* fix(groups): correct timing on updating member quantities

* fix(groups): don't run group cancellation check if we're in invite flow

* fix(groups): update leader when memberCount is 1

* fix(groups): move leader update back--unrelated to group plans fix
This commit is contained in:
Sabe Jones 2018-08-24 14:57:05 -05:00 committed by GitHub
parent cf4b920a67
commit ba307af963
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -590,11 +590,6 @@ api.joinGroup = {
// @TODO: Review the need for this and if still needed, don't base this on memberCount
if (!group.hasNotCancelled() && group.memberCount === 0) group.leader = user._id; // If new user is only member -> set as leader
if (group.hasNotCancelled()) {
await payments.addSubToGroupUser(user, group);
await group.updateGroupPlan();
}
group.memberCount += 1;
let promises = [group.save(), user.save()];
@ -638,6 +633,11 @@ api.joinGroup = {
promises = await Promise.all(promises);
if (group.hasNotCancelled()) {
await payments.addSubToGroupUser(user, group);
await group.updateGroupPlan();
}
let response = await Group.toJSONCleanChat(promises[0], user);
let leader = await User.findById(response.leader).select(nameFields).exec();
if (leader) {
@ -790,7 +790,6 @@ api.leaveGroup = {
}
await group.leave(user, req.query.keep, req.body.keepChallenges);
if (group.hasNotCancelled()) await group.updateGroupPlan(true);
_removeMessagesFromMember(user, group._id);
await user.save();
@ -804,6 +803,7 @@ api.leaveGroup = {
await payments.cancelGroupSubscriptionForUser(user, group);
}
if (group.hasNotCancelled()) await group.updateGroupPlan(true);
res.respond(200, {});
},
};
@ -892,10 +892,6 @@ api.removeGroupMember = {
if (isInGroup) {
group.memberCount -= 1;
if (group.hasNotCancelled()) {
await group.updateGroupPlan(true);
await payments.cancelGroupSubscriptionForUser(member, group, true);
}
if (group.quest && group.quest.leader === member._id) {
group.quest.key = undefined;
@ -944,6 +940,12 @@ api.removeGroupMember = {
member.save(),
group.save(),
]);
if (isInGroup && group.hasNotCancelled()) {
await group.updateGroupPlan(true);
await payments.cancelGroupSubscriptionForUser(member, group, true);
}
res.respond(200, {});
},
};