diff --git a/apps/server/src/ws/ws.gateway.ts b/apps/server/src/ws/ws.gateway.ts index 231dfade..fd6810c8 100644 --- a/apps/server/src/ws/ws.gateway.ts +++ b/apps/server/src/ws/ws.gateway.ts @@ -65,12 +65,10 @@ export class WsGateway async handleMessage(client: Socket, data: any): Promise { if (this.wsService.isTreeEvent(data)) { await this.wsService.handleTreeEvent(client, data); - return; } - - client.broadcast.emit('message', data); } + /* @SubscribeMessage('join-room') handleJoinRoom(client: Socket, @MessageBody() roomName: string): void { // if room is a space, check if user has permissions @@ -81,6 +79,7 @@ export class WsGateway handleLeaveRoom(client: Socket, @MessageBody() roomName: string): void { client.leave(roomName); } + */ onModuleDestroy() { if (this.server) { diff --git a/apps/server/src/ws/ws.service.ts b/apps/server/src/ws/ws.service.ts index 3cdccf6b..23d41909 100644 --- a/apps/server/src/ws/ws.service.ts +++ b/apps/server/src/ws/ws.service.ts @@ -27,6 +27,15 @@ export class WsService { async handleTreeEvent(client: Socket, data: any): Promise { const room = getSpaceRoomName(data.spaceId); + if (!client.rooms.has(room)) { + return; + } + + if (data.operation === 'refetchRootTreeNodeEvent') { + client.broadcast.to(room).emit('message', data); + return; + } + const hasRestrictions = await this.spaceHasRestrictions(data.spaceId); if (!hasRestrictions) { client.broadcast.to(room).emit('message', data); diff --git a/apps/server/src/ws/ws.utils.ts b/apps/server/src/ws/ws.utils.ts index 0cf460f1..c0d48b54 100644 --- a/apps/server/src/ws/ws.utils.ts +++ b/apps/server/src/ws/ws.utils.ts @@ -14,4 +14,5 @@ export const TREE_EVENTS = new Set([ 'addTreeNode', 'moveTreeNode', 'deleteTreeNode', + 'refetchRootTreeNodeEvent', ]);