From 62503c16c6b13559df43cfd18b60655f2a4027fb Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 14 Oct 2014 13:29:23 -0400 Subject: [PATCH] mark category read only if unread --- src/categories.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/categories.js b/src/categories.js index 24b041eeb1..7be6d0a6ef 100644 --- a/src/categories.js +++ b/src/categories.js @@ -248,13 +248,29 @@ var db = require('./database'), }; Categories.markAsRead = function(cids, uid, callback) { + callback = callback || function() {}; if (!Array.isArray(cids) || !cids.length) { return callback(); } var keys = cids.map(function(cid) { return 'cid:' + cid + ':read_by_uid'; }); - db.setsAdd(keys, uid, callback); + + db.isMemberOfSets(keys, uid, function(err, hasRead) { + if (err) { + return callback(err); + } + + keys = keys.filter(function(key, index) { + return !hasRead[index]; + }); + + if (!keys.length) { + return callback(); + } + + db.setsAdd(keys, uid, callback); + }); }; Categories.markAsUnreadForAll = function(cid, callback) {