From 9ae60766fc53ce4bfb3d0570785abd04affd4026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=A0=95=EB=AF=BC?= Date: Thu, 8 Feb 2024 14:07:44 +0900 Subject: [PATCH] =?UTF-8?q?SSE=20=EC=95=88=EB=90=98=EB=8A=94=20=EB=B6=80?= =?UTF-8?q?=EB=B6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/team/team.controller.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/team/team.controller.ts b/src/team/team.controller.ts index 865c430..b869bc9 100644 --- a/src/team/team.controller.ts +++ b/src/team/team.controller.ts @@ -45,6 +45,21 @@ export class TeamController { return await this.teamService.joinTeam(user.id, teamCode); } + @UseGuards(JwtAuthGuard) + @Sse(TeamStatusEvent.EVENT_NAME) + async sseTeamStatus(@User() user: UserEntity) { + // 1. 팀의 현재 상태를 가져오는 로직 + const currentStatus = await this.teamService.getCurrentTeamStatus( + user.teamCode, + ); + + // 2. 현재 상태를 포함한 SSE 스트림 반환 + return this.teamTrackingService.streamTeamStatus(user.teamCode).pipe( + startWith({ data: currentStatus }), // 현재 상태를 스트림의 첫 이벤트로 설정 + map((status) => ({ data: status })), // 이후 업데이트를 스트림으로 전송 + ); + } + @Get('/:teamCode') @UseGuards(JwtAuthGuard) async findTeam( @@ -91,21 +106,6 @@ export class TeamController { return this.teamService.searchMember(user.teamCode, name); } - @UseGuards(JwtAuthGuard) - @Sse(TeamStatusEvent.EVENT_NAME) - async sseTeamStatus(@User() user: UserEntity) { - // 1. 팀의 현재 상태를 가져오는 로직 - const currentStatus = await this.teamService.getCurrentTeamStatus( - user.teamCode, - ); - - // 2. 현재 상태를 포함한 SSE 스트림 반환 - return this.teamTrackingService.streamTeamStatus(user.teamCode).pipe( - startWith({ data: currentStatus }), // 현재 상태를 스트림의 첫 이벤트로 설정 - map((status) => ({ data: status })), // 이후 업데이트를 스트림으로 전송 - ); - } - // 글을 수정하는 버튼을 눌렀을 떄에 발생하는 코드로 @Get('start-writing') startWriting(