update messaging.editMessage

v1.18.x
barisusakli 10 years ago
parent 5d1169e686
commit 6b12bd2328

@ -10,35 +10,36 @@ var sockets = require('../socket.io');
module.exports = function(Messaging) { module.exports = function(Messaging) {
Messaging.editMessage = function(mid, content, callback) { Messaging.editMessage = function(uid, mid, roomId, content, callback) {
async.series([ var uids;
async.waterfall([
function(next) { function(next) {
// Verify that the message actually changed Messaging.getMessageField(mid, 'content', next);
Messaging.getMessageField(mid, 'content', function(err, raw) {
if (raw === content) {
// No dice.
return callback();
}
next();
});
}, },
async.apply(Messaging.setMessageFields, mid, { function (raw, next) {
content: content, if (raw === content) {
edited: Date.now() return callback();
}), }
function(next) {
Messaging.getMessageFields(mid, ['fromuid', 'touid'], function(err, data) { Messaging.setMessageFields(mid, {
Messaging.getMessagesData([mid], data.fromuid, data.touid, true, function(err, messages) { content: content,
sockets.in('uid_' + data.fromuid).emit('event:chats.edit', { edited: Date.now()
messages: messages }, next);
}); },
sockets.in('uid_' + data.touid).emit('event:chats.edit', { function (next) {
messages: messages Messaging.getUidsInRoom(roomId, 0, -1, next);
}); },
next(); function (_uids, next) {
uids = _uids;
Messaging.getMessagesData([mid], uid, roomId, true, next);
},
function (messages, next) {
uids.forEach(function(uid) {
sockets.in('uid_' + uid).emit('event:chats.edit', {
messages: messages
}); });
}); });
next();
} }
], callback); ], callback);
}; };

Loading…
Cancel
Save