From 8fab270852dfa7a57e1328bed6555b8a2ffc59a3 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 16 Dec 2015 11:30:10 +0200 Subject: [PATCH] leaveRoom method, small fixes --- public/src/app.js | 7 +++++++ src/controllers/accounts/chats.js | 2 +- src/messaging.js | 2 -- src/messaging/notifications.js | 2 ++ src/messaging/rooms.js | 11 +++++++++++ src/socket.io/modules.js | 2 +- 6 files changed, 22 insertions(+), 4 deletions(-) diff --git a/public/src/app.js b/public/src/app.js index 10e192ba63..2f6e759609 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -261,6 +261,13 @@ app.cacheBuster = null; }); }; + app.newChat = function (touid) { + if (!app.user.uid) { + return app.alertError('[[error:not-logged-in]]'); + } + + }; + var titleObj = { active: false, interval: undefined, diff --git a/src/controllers/accounts/chats.js b/src/controllers/accounts/chats.js index f0e3bcf8f7..30c73fcce1 100644 --- a/src/controllers/accounts/chats.js +++ b/src/controllers/accounts/chats.js @@ -46,7 +46,7 @@ chatsController.get = function(req, res, callback) { since: 'recent', isNew: false }), - allowed: async.apply(messaging.canMessage, req.user.uid, req.params.roomid) + allowed: async.apply(messaging.canMessageRoom, req.user.uid, req.params.roomid) }, next); } ], function(err, data) { diff --git a/src/messaging.js b/src/messaging.js index 5cfbca1318..a71000854f 100644 --- a/src/messaging.js +++ b/src/messaging.js @@ -23,8 +23,6 @@ var async = require('async'), require('./messaging/unread')(Messaging); require('./messaging/notifications')(Messaging); - Messaging.notifyQueue = {}; // Only used to notify a user of a new chat message, see Messaging.notifyUser - var terms = { day: 86400000, week: 604800000, diff --git a/src/messaging/notifications.js b/src/messaging/notifications.js index b1b8564659..046c07c88e 100644 --- a/src/messaging/notifications.js +++ b/src/messaging/notifications.js @@ -12,6 +12,8 @@ var sockets = require('../socket.io'); module.exports = function(Messaging) { + Messaging.notifyQueue = {}; // Only used to notify a user of a new chat message, see Messaging.notifyUser + Messaging.notifyUsersInRoom = function(fromUid, roomId, messageObj) { Messaging.getUidsInRoom(roomId, 0, -1, function(err, uids) { if (err) { diff --git a/src/messaging/rooms.js b/src/messaging/rooms.js index 73a9885562..c9612a9e75 100644 --- a/src/messaging/rooms.js +++ b/src/messaging/rooms.js @@ -45,6 +45,17 @@ module.exports = function(Messaging) { ], callback); }; + Messaging.leaveRoom = function(uid, roomId, callback) { + async.waterfall([ + function (next) { + db.sortedSetRemove('chat:room:' + roomId + ':uids', uid, next); + }, + function (next) { + db.sortedSetRemove('uid:' + uid + ':chat:rooms', roomId, next); + } + ], callback); + }; + Messaging.getUidsInRoom = function(roomId, start, stop, callback) { db.getSortedSetRange('chat:room:' + roomId + ':uids', start, stop, callback); }; diff --git a/src/socket.io/modules.js b/src/socket.io/modules.js index bb0de7b268..c22f48fef0 100644 --- a/src/socket.io/modules.js +++ b/src/socket.io/modules.js @@ -128,7 +128,7 @@ SocketModules.chats.delete = function(socket, data, callback) { }; SocketModules.chats.canMessage = function(socket, roomId, callback) { - Messaging.canMessage(socket.uid, roomId, function(err, allowed) { + Messaging.canMessageRoom(socket.uid, roomId, function(err, allowed) { callback(!allowed ? new Error('[[error:chat-restricted]]') : undefined); }); };