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/apps/meteor/app/lib/server/functions/archiveRoom.ts

25 lines
840 B

import { Message } from '@rocket.chat/core-services';
import type { IMessage } from '@rocket.chat/core-typings';
import { Rooms, Subscriptions } from '@rocket.chat/models';
import { callbacks } from '../../../../server/lib/callbacks';
import { notifyOnRoomChanged, notifyOnSubscriptionChangedByRoomId } from '../lib/notifyListener';
export const archiveRoom = async function (rid: string, user: IMessage['u']): Promise<void> {
await Rooms.archiveById(rid);
const archiveResponse = await Subscriptions.archiveByRoomId(rid);
if (archiveResponse.modifiedCount) {
void notifyOnSubscriptionChangedByRoomId(rid);
}
await Message.saveSystemMessage('room-archived', rid, '', user);
const room = await Rooms.findOneById(rid);
await callbacks.run('afterRoomArchived', room, user);
if (room) {
void notifyOnRoomChanged(room);
}
};