From 01522a3c4cabb42785d923e2a10e80d8e259b40c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Garapich?= Date: Fri, 8 Dec 2023 13:46:18 +0100 Subject: [PATCH] add schema validation --- src/rooms/gateways/rooms.gateway.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) 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); }