From a92d3ca12160989a2dba5ace71a22b9098bc96d3 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Wed, 13 Aug 2025 23:54:09 -0400 Subject: [PATCH] delete any "new chat" notifications when deleting rooms --- packages/backend/src/core/ChatService.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/core/ChatService.ts b/packages/backend/src/core/ChatService.ts index 9d294a80cb..62cf04e00e 100644 --- a/packages/backend/src/core/ChatService.ts +++ b/packages/backend/src/core/ChatService.ts @@ -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, });