Removes quest from group if quest leader is booted
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user