From 1a68fe5a260b02e7c441e8098eb48f230b5e2288 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Tue, 29 Jul 2014 17:12:02 -0400 Subject: [PATCH] possible fix for #1909 --- src/database/mongo/list.js | 11 +++++------ src/messaging.js | 4 +++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index c510818112..9d0a9bdcfa 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -4,17 +4,16 @@ module.exports = function(db, module) { var helpers = module.helpers.mongo; module.listPrepend = function(key, value, callback) { + callback = callback || function() {}; value = helpers.valueToString(value); module.isObjectField(key, 'array', function(err, exists) { - if(err) { - if(typeof callback === 'function') { - return callback(err); - } + if (err) { + return callback(err); } - if(exists) { - db.collection('objects').update({_key:key}, {'$set': {'array.-1': value}}, {upsert:true, w:1 }, helpers.done(callback)); + if (exists) { + db.collection('objects').update({_key:key}, {$push: {array: {$each: [value], $position: 0}}}, {upsert:true, w:1 }, callback); } else { module.listAppend(key, value, callback); } diff --git a/src/messaging.js b/src/messaging.js index 37d727d5fa..4563a3a12d 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -87,7 +87,7 @@ var db = require('./database'), Messaging.getMessages = function(fromuid, touid, isNew, callback) { var uids = sortUids(fromuid, touid); - db.getSortedSetRange('messages:uid:' + uids[0] + ':to:' + uids[1], -((meta.config.chatMessagesToDisplay || 50) - 1), -1, function(err, mids) { + db.getSortedSetRevRange('messages:uid:' + uids[0] + ':to:' + uids[1], 0, (meta.config.chatMessagesToDisplay || 50) - 1, function(err, mids) { if (err) { return callback(err); } @@ -96,6 +96,8 @@ var db = require('./database'), return callback(null, []); } + mids.reverse(); + getMessages(mids, fromuid, touid, isNew, callback); });