'use strict'; var async = require('async'); var db = require('../database'); module.exports = function(Messaging) { Messaging.deleteMessage = function(mid, roomId, callback) { async.waterfall([ function (next) { Messaging.getUidsInRoom(roomId, 0, -1, next); }, function (uids, next) { if (!uids.length) { return next(); } var keys = uids.map(function(uid) { return 'uid:' + uid + ':chat:room:' + roomId + 'mids'; }); db.sortedSetsRemove(keys, roomId, next); }, function(next) { db.delete('message:' + mid, next); } ], callback); }; };