The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rocket.Chat/server/methods/readMessages.js

27 lines
687 B

import { ReadReceipt } from '../../imports/message-read-receipt/server/lib/ReadReceipt';
Meteor.methods({
readMessages(rid) {
check(rid, String);
const userId = Meteor.userId();
if (!userId) {
throw new Meteor.Error('error-invalid-user', 'Invalid user', {
method: 'readMessages'
});
}
const userSubscription = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(rid, userId);
// this prevents cache from updating object reference/pointer
const { ls: lastSeen } = userSubscription;
RocketChat.models.Subscriptions.setAsReadByRoomIdAndUserId(rid, userId);
Meteor.defer(() => {
ReadReceipt.markMessagesAsRead(rid, userId, lastSeen);
});
}
});