delete any "new chat" notifications when deleting rooms
This commit is contained in:
parent
5dd32123a3
commit
a92d3ca121
1 changed files with 10 additions and 1 deletions
|
|
@ -580,11 +580,20 @@ export class ChatService {
|
||||||
public async deleteRoom(room: MiChatRoom, deleter?: MiUser) {
|
public async deleteRoom(room: MiChatRoom, deleter?: MiUser) {
|
||||||
await this.chatRoomsRepository.delete(room.id);
|
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) {
|
if (deleter) {
|
||||||
const deleterIsModerator = await this.roleService.isModerator(deleter);
|
const deleterIsModerator = await this.roleService.isModerator(deleter);
|
||||||
|
|
||||||
if (deleterIsModerator) {
|
if (deleterIsModerator) {
|
||||||
this.moderationLogService.log(deleter, 'deleteChatRoom', {
|
await this.moderationLogService.log(deleter, 'deleteChatRoom', {
|
||||||
roomId: room.id,
|
roomId: room.id,
|
||||||
room: room,
|
room: room,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue