optimize getUnreadByField

only get the most recent 100 notifications
dont call UserNotifications.getNotifications which does alot more work,
call the db directly
This commit is contained in:
barisusakli
2014-10-17 17:20:45 -04:00
parent 8ef4ad6f14
commit b5fb7691cd
2 changed files with 8 additions and 7 deletions

View File

@@ -68,6 +68,7 @@ SocketTopics.enter = function(socket, tid, callback) {
if (!tid || !socket.uid) {
return;
}
SocketTopics.markAsRead(socket, [tid], callback);
topics.increaseViewCount(tid);
websockets.updateRoomBrowsingText('topic_' + tid);
@@ -77,10 +78,6 @@ SocketTopics.postcount = function(socket, tid, callback) {
topics.getTopicField(tid, 'postcount', callback);
};
SocketTopics.increaseViewCount = function(socket, tid) {
topics.increaseViewCount(tid);
};
SocketTopics.markAsRead = function(socket, tids, callback) {
if(!Array.isArray(tids) || !socket.uid) {
return callback(new Error('[[error:invalid-data]]'));
@@ -92,6 +89,7 @@ SocketTopics.markAsRead = function(socket, tids, callback) {
tids = tids.filter(function(tid) {
return tid && utils.isNumber(tid);
});
topics.markAsRead(tids, socket.uid, function(err) {
if (err) {
return callback(err);