Removes quest from group if quest leader is booted

This commit is contained in:
Blade Barringer
2015-09-15 18:10:31 -05:00
parent a655242c49
commit 4c84728873
2 changed files with 110 additions and 2 deletions
+9 -2
View File
@@ -715,11 +715,14 @@ api.removeMember = function(req, res, next){
if(_.contains(group.members, uuid)){
var update = {$pull:{members:uuid}};
if(group.quest && group.quest.members){
if (group.quest && group.quest.leader === uuid) {
update['$set'] = {
quest: { key: null, leader: null }
};
} else if(group.quest && group.quest.members){
// remove member from quest
update['$unset'] = {};
update['$unset']['quest.members.' + uuid] = "";
// TODO: run cleanQuestProgress and return scroll to member if member was quest owner
}
update['$inc'] = {memberCount: -1};
Group.update({_id:group._id},update, function(err, saved){
@@ -733,6 +736,10 @@ api.removeMember = function(req, res, next){
//Mark removed users messages as seen
var update = {$unset:{}};
update.$unset['newMessages.' + group._id] = '';
if (group.quest && group.quest.active && group.quest.leader === uuid) {
update['$inc'] = {};
update['$inc']['items.quests.' + group.quest.key] = 1;
}
User.update({_id: removedUser._id, apiToken: removedUser.apiToken}, update).exec();
// Sending an empty 204 because Group.update doesn't return the group