diff --git a/src/rooms/gateways/rooms.gateway.ts b/src/rooms/gateways/rooms.gateway.ts index c00551078..211821437 100644 --- a/src/rooms/gateways/rooms.gateway.ts +++ b/src/rooms/gateways/rooms.gateway.ts @@ -1,16 +1,34 @@ -import { SubscribeMessage, WebSocketGateway } from '@nestjs/websockets'; +import { ZodPipe } from '@/shared/pipes/zod.pipe'; +import { + ConnectedSocket, + MessageBody, + SubscribeMessage, + WebSocketGateway, +} from '@nestjs/websockets'; import { Socket } from 'socket.io'; +import { z } from 'zod'; + +const joinRoomSchema = z.string(); +const leaveRoomSchema = z.string(); @WebSocketGateway() export class RoomsGateway { @SubscribeMessage('join') - join(client: Socket, room: string): string[] { + join( + @ConnectedSocket() client: Socket, + @MessageBody(new ZodPipe(joinRoomSchema)) + room: z.infer, + ): string[] { client.join(room); return Array.from(client.rooms); } @SubscribeMessage('leave') - leave(client: Socket, room: string): string[] { + leave( + @ConnectedSocket() client: Socket, + @MessageBody(new ZodPipe(leaveRoomSchema)) + room: z.infer, + ): string[] { client.leave(room); return Array.from(client.rooms); }