diff --git a/src/messaging/create.js b/src/messaging/create.js index 239aa54cfe..1f8a3b48f0 100644 --- a/src/messaging/create.js +++ b/src/messaging/create.js @@ -57,14 +57,10 @@ module.exports = function (Messaging) { await Promise.all([ Messaging.addRoomToUsers(data.roomId, uids, timestamp), Messaging.addMessageToUsers(data.roomId, uids, mid, timestamp), - Messaging.markUnread(uids, data.roomId), - ]); - - const [, messages] = await Promise.all([ - await Messaging.markRead(data.uid, data.roomId), - await Messaging.getMessagesData([mid], data.uid, data.roomId, true), + Messaging.markUnread(uids.filter(uid => uid !== String(data.uid)), data.roomId), ]); + const messages = await Messaging.getMessagesData([mid], data.uid, data.roomId, true); if (!messages || !messages[0]) { return null; } diff --git a/src/messaging/unread.js b/src/messaging/unread.js index 436b88d24c..c49fe7a729 100644 --- a/src/messaging/unread.js +++ b/src/messaging/unread.js @@ -20,18 +20,20 @@ module.exports = function (Messaging) { sockets.in('uid_' + uid).emit('event:unread.updateChatCount', unreadCount); }; - Messaging.markRead = async (uid, roomId) => db.sortedSetRemove('uid:' + uid + ':chat:rooms:unread', roomId); - Messaging.markAllRead = async uid => db.delete('uid:' + uid + ':chat:rooms:unread'); + Messaging.markRead = async (uid, roomId) => { + await db.sortedSetRemove('uid:' + uid + ':chat:rooms:unread', roomId); + }; + + Messaging.markAllRead = async (uid) => { + await db.delete('uid:' + uid + ':chat:rooms:unread'); + }; Messaging.markUnread = async (uids, roomId) => { const exists = await Messaging.roomExists(roomId); if (!exists) { throw new Error('[[error:chat-room-does-not-exist]]'); } - var keys = uids.map(function (uid) { - return 'uid:' + uid + ':chat:rooms:unread'; - }); - + const keys = uids.map(uid => 'uid:' + uid + ':chat:rooms:unread'); return await db.sortedSetsAdd(keys, Date.now(), roomId); }; };