diff --git a/migrations/20140823_remove_undefined_and_false_notifications.js b/migrations/20140823_remove_undefined_and_false_notifications.js new file mode 100644 index 0000000000..77882c4be7 --- /dev/null +++ b/migrations/20140823_remove_undefined_and_false_notifications.js @@ -0,0 +1,13 @@ +db.users.find({}).forEach(function(user){ + var newNewMessages = {}; + + for(var key in user.newMessages) { + var val = user.newMessages[key]; + // print("\n" + key + " " + val); + if(key != "undefined" && val['value']){ + newNewMessages[key] = val; + } + } + + db.users.update({_id: user._id}, {$set: {'newMessages': newNewMessages}}); +}); diff --git a/public/js/services/groupServices.js b/public/js/services/groupServices.js index ebfcc56319..85214eba79 100644 --- a/public/js/services/groupServices.js +++ b/public/js/services/groupServices.js @@ -47,7 +47,7 @@ angular.module('groupServices', ['ngResource']). // On enter, set chat message to "seen" seenMessage: function(gid){ $http.post('/api/v2/groups/'+gid+'/chat/seen'); - if (User.user.newMessages) User.user.newMessages[gid] = false; + if (User.user.newMessages) delete User.user.newMessages[gid]; }, // Pass reference to party, myGuilds, publicGuilds, tavern; inside data in order to diff --git a/src/controllers/groups.js b/src/controllers/groups.js index d867f0048d..c126373484 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -257,8 +257,8 @@ api.seenMessage = function(req,res,next){ // Skip the auth step, we want this to be fast. If !found with uuid/token, then it just doesn't save // Check for req.params.gid to exist if(req.params.gid){ - var update = {$set:{}}; - update['$set']['newMessages.'+req.params.gid+'.value'] = false; + var update = {$unset:{}}; + update['$unset']['newMessages.'+req.params.gid] = ''; User.update({_id:req.headers['x-api-user'], apiToken:req.headers['x-api-key']},update).exec(); } res.send(200);