apps/meteor/app/channel-settings/server/functions/saveReactWhenReadOnly.ts
import { Message } from '@rocket.chat/core-services';
import { Rooms } from '@rocket.chat/models';
import { Match } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
export const saveReactWhenReadOnly = async function (
rid: string,
allowReact: boolean,
user: {
_id: string;
username: string;
},
sendMessage = true,
) {
if (!Match.test(rid, String)) {
throw new Meteor.Error('invalid-room', 'Invalid room', {
function: 'RocketChat.saveReactWhenReadOnly',
});
}
const result = await Rooms.setAllowReactingWhenReadOnlyById(rid, allowReact);
if (result && sendMessage) {
const type = allowReact ? 'room-allowed-reacting' : 'room-disallowed-reacting';
await Message.saveSystemMessage(type, rid, '', user);
}
};