delete any "new chat" notifications when deleting rooms

This commit is contained in:
Hazelnoot 2025-08-13 23:54:09 -04:00
parent 5dd32123a3
commit a92d3ca121

View file

@ -580,11 +580,20 @@ export class ChatService {
public async deleteRoom(room: MiChatRoom, deleter?: MiUser) {
await this.chatRoomsRepository.delete(room.id);
// Erase any message notifications for this room
const redisPipeline = this.redisClient.pipeline();
const memberships = await this.chatRoomMembershipsRepository.findBy({ roomId: room.id });
for (const membership of memberships) {
redisPipeline.del(`newRoomChatMessageExists:${membership.userId}:${room.id}`);
redisPipeline.srem(`newChatMessagesExists:${membership.userId}`, `room:${room.id}`);
}
await redisPipeline.exec();
if (deleter) {
const deleterIsModerator = await this.roleService.isModerator(deleter);
if (deleterIsModerator) {
this.moderationLogService.log(deleter, 'deleteChatRoom', {
await this.moderationLogService.log(deleter, 'deleteChatRoom', {
roomId: room.id,
room: room,
});