From 48c8893593dd1e61b65778811c6b668efc0a09bd Mon Sep 17 00:00:00 2001 From: Eunchae Kim Date: Sun, 14 Jul 2024 12:48:43 +0900 Subject: [PATCH] =?UTF-8?q?feat(timer):=20=EC=86=8C=EC=BC=93=EC=9D=84=20?= =?UTF-8?q?=ED=86=B5=ED=95=B4=20=EC=97=B0=EB=8F=99=EB=90=98=EB=8A=94=20?= =?UTF-8?q?=EC=B0=B8=EA=B0=80=EC=9E=90=20=EC=A0=95=EB=B3=B4=EB=A5=BC=20API?= =?UTF-8?q?=20Response=20=ED=98=95=ED=83=9C(=EC=B0=B8=EA=B0=80=EC=9E=90=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D,=20active=20=EC=9C=A0=EC=A0=80=20=EC=B9=B4?= =?UTF-8?q?=EC=9A=B4=ED=8A=B8=20=EC=88=98)=EC=99=80=20=EB=8F=99=EC=9D=BC?= =?UTF-8?q?=ED=95=98=EA=B2=8C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/timerService.js | 17 +++++++---------- .../handlers/onRoomDetailConnection.js | 4 ++-- .../handlers/onRoomDetailDisconnect.js | 8 +++++--- .../helpers/getFinishCyclesTimeout.js | 5 ++--- .../room-detail/helpers/getPomodoroInterval.js | 5 ++--- 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/services/timerService.js b/services/timerService.js index 3bb31bc..b98a22b 100644 --- a/services/timerService.js +++ b/services/timerService.js @@ -3,6 +3,7 @@ import roomRepository from "../repositories/roomRepository.js"; import timerRepository from "../repositories/timerRepository.js"; import userRoomRepository from "../repositories/userRoomRepository.js"; import isEmptyArray from "../utils/isEmptyArray.js"; +import roomService from "./roomService.js"; const timerService = { async startTimer({ roomId, userIds }) { @@ -54,12 +55,10 @@ const timerService = { roomId, }); - const allParticipants = await userRoomRepository.findParticipants({ - connection, - roomId, - }); + const roomUsersAndActiveCount = + await roomService.getRoomUsersAndActiveCount({ roomId }); - return { allParticipants }; + return { roomUsersAndActiveCount }; } catch (error) { throw error; } finally { @@ -90,12 +89,10 @@ const timerService = { roomId, }); - const allParticipants = await userRoomRepository.findParticipants({ - connection, - roomId, - }); + const roomUsersAndActiveCount = + await roomService.getRoomUsersAndActiveCount({ roomId }); - return { increasedCurrentCycles, allParticipants }; + return { increasedCurrentCycles, roomUsersAndActiveCount }; } catch (error) { throw error; } finally { diff --git a/socket/room-detail/handlers/onRoomDetailConnection.js b/socket/room-detail/handlers/onRoomDetailConnection.js index 131ff91..d1bae33 100644 --- a/socket/room-detail/handlers/onRoomDetailConnection.js +++ b/socket/room-detail/handlers/onRoomDetailConnection.js @@ -28,12 +28,12 @@ const onConnection = async (socket) => { ); try { - const { users: allParticipants } = + const roomUsersAndActiveCount = await roomService.getRoomUsersAndActiveCount({ roomId }); roomDetailNamespace .to(roomId) - .emit(SOCKET_TIMER_EVENTS.SYNC_ALL_PARTICIPANTS, allParticipants); + .emit(SOCKET_TIMER_EVENTS.SYNC_ALL_PARTICIPANTS, roomUsersAndActiveCount); } catch (error) { socket.emit(SOCKET_TIMER_EVENTS.ERROR, { message: SOCKET_TIMER_ERRORS.INTERNAL_SERVER_ERROR, diff --git a/socket/room-detail/handlers/onRoomDetailDisconnect.js b/socket/room-detail/handlers/onRoomDetailDisconnect.js index 4614f4f..ac437dd 100644 --- a/socket/room-detail/handlers/onRoomDetailDisconnect.js +++ b/socket/room-detail/handlers/onRoomDetailDisconnect.js @@ -2,7 +2,6 @@ import { SOCKET_TIMER_ERRORS, SOCKET_TIMER_EVENTS, } from "../../../constants.js"; -import pool from "../../../db/pool.js"; import roomService from "../../../services/roomService.js"; import getAllLinkedUserIdsFromNamespace from "../../helpers/getAllLinkedUserIdsFromNamespace.js"; import getUserIdFromSocket from "../../helpers/getUserIdFromSocket.js"; @@ -29,12 +28,15 @@ const onRoomDetailDisconnect = async (socket) => { // 참가자 목록 클라이언트에 동기화 try { - const { users: allParticipants } = + const roomUsersAndActiveCount = await roomService.getRoomUsersAndActiveCount({ roomId }); roomDetailNamespace .to(roomId) - .emit(SOCKET_TIMER_EVENTS.SYNC_ALL_PARTICIPANTS, allParticipants); + .emit( + SOCKET_TIMER_EVENTS.SYNC_ALL_PARTICIPANTS, + roomUsersAndActiveCount + ); } catch (error) { socket.emit(SOCKET_TIMER_EVENTS.ERROR, { message: SOCKET_TIMER_ERRORS.INTERNAL_SERVER_ERROR, diff --git a/socket/room-detail/helpers/getFinishCyclesTimeout.js b/socket/room-detail/helpers/getFinishCyclesTimeout.js index 888cdcc..415936c 100644 --- a/socket/room-detail/helpers/getFinishCyclesTimeout.js +++ b/socket/room-detail/helpers/getFinishCyclesTimeout.js @@ -1,4 +1,3 @@ -import camelcaseKeys from "camelcase-keys"; import { SOCKET_TIMER_EVENTS } from "../../../constants.js"; import timerService from "../../../services/timerService.js"; import { calculateTimerTotalMsWithDelay } from "./calculateMs.js"; @@ -31,7 +30,7 @@ const finishCyclesTimeoutGetter = ({ socket, roomInfo }) => { .to(roomId) .emit(SOCKET_TIMER_EVENTS.SYNC_CURRENT_CYCLES, 0); - const { allParticipants } = await timerService.finishTimer({ + const { roomUsersAndActiveCount } = await timerService.finishTimer({ roomId, }); @@ -39,7 +38,7 @@ const finishCyclesTimeoutGetter = ({ socket, roomInfo }) => { .to(roomId) .emit( SOCKET_TIMER_EVENTS.SYNC_ALL_PARTICIPANTS, - camelcaseKeys(allParticipants) + roomUsersAndActiveCount ); resolve(); diff --git a/socket/room-detail/helpers/getPomodoroInterval.js b/socket/room-detail/helpers/getPomodoroInterval.js index 40da4c7..a065fc0 100644 --- a/socket/room-detail/helpers/getPomodoroInterval.js +++ b/socket/room-detail/helpers/getPomodoroInterval.js @@ -1,4 +1,3 @@ -import camelcaseKeys from "camelcase-keys"; import { SOCKET_TIMER_EVENTS } from "../../../constants.js"; import timerService from "../../../services/timerService.js"; import { calculateOnePomodoroMs } from "./calculateMs.js"; @@ -25,14 +24,14 @@ const getPomodoroInterval = ({ socket, roomInfo }) => { try { console.log(pomodoroCount + 1, "뽀모도로 끝"); - const { increasedCurrentCycles, allParticipants } = + const { increasedCurrentCycles, roomUsersAndActiveCount } = await timerService.finishPomodoro({ roomId }); roomDetailNamespace .to(roomId) .emit( SOCKET_TIMER_EVENTS.SYNC_ALL_PARTICIPANTS, - camelcaseKeys(allParticipants) + roomUsersAndActiveCount ); roomDetailNamespace .to(roomId)