3131import io .f1 .backend .domain .game .store .RoomRepository ;
3232import io .f1 .backend .domain .quiz .app .QuizService ;
3333import io .f1 .backend .domain .quiz .entity .Quiz ;
34- import java .util .List ;
35- import java .util .Map ;
36- import java .util .Optional ;
37- import java .util .concurrent .ConcurrentHashMap ;
38- import java .util .concurrent .atomic .AtomicLong ;
34+
3935import lombok .RequiredArgsConstructor ;
4036import lombok .extern .slf4j .Slf4j ;
37+
4138import org .hibernate .boot .model .naming .IllegalIdentifierException ;
4239import org .springframework .context .ApplicationEventPublisher ;
4340import org .springframework .stereotype .Service ;
4441
42+ import java .util .List ;
43+ import java .util .Map ;
44+ import java .util .Optional ;
45+ import java .util .concurrent .ConcurrentHashMap ;
46+ import java .util .concurrent .atomic .AtomicLong ;
47+
4548@ Slf4j
4649@ Service
4750@ RequiredArgsConstructor
@@ -69,7 +72,7 @@ public RoomCreateResponse saveRoom(RoomCreateRequest request) {
6972
7073 Room room = new Room (newId , roomSetting , gameSetting , host );
7174
72- room .getUserIdSessionMap ().put (host .id ,PENDING_SESSION_ID );
75+ room .getUserIdSessionMap ().put (host .id , PENDING_SESSION_ID );
7376
7477 roomRepository .saveRoom (room );
7578
@@ -85,7 +88,6 @@ public void enterRoom(RoomValidationRequest request) {
8588 Object lock = roomLocks .computeIfAbsent (roomId , k -> new Object ());
8689
8790 synchronized (lock ) {
88-
8991 Room room = findRoom (request .roomId ());
9092
9193 if (room .getState ().equals (RoomState .PLAYING )) {
@@ -99,7 +101,7 @@ public void enterRoom(RoomValidationRequest request) {
99101 }
100102
101103 if (room .getRoomSetting ().locked ()
102- && !room .getRoomSetting ().password ().equals (request .password ())) {
104+ && !room .getRoomSetting ().password ().equals (request .password ())) {
103105 throw new IllegalArgumentException ("401 비밀번호가 일치하지 않습니다." );
104106 }
105107
@@ -116,7 +118,7 @@ public RoomInitialData initializeRoomSocket(Long roomId, String sessionId) {
116118 Map <String , Player > playerSessionMap = room .getPlayerSessionMap ();
117119 Map <Long , String > userIdSessionMap = room .getUserIdSessionMap ();
118120
119- if (room .isHost (player .getId ())) {
121+ if (room .isHost (player .getId ())) {
120122 player .toggleReady ();
121123 }
122124
@@ -133,47 +135,46 @@ public RoomInitialData initializeRoomSocket(Long roomId, String sessionId) {
133135 Quiz quiz = quizService .getQuizById (quizId );
134136
135137 GameSettingResponse gameSettingResponse =
136- toGameSettingResponse (room .getGameSetting (), quiz );
138+ toGameSettingResponse (room .getGameSetting (), quiz );
137139
138140 PlayerListResponse playerListResponse = toPlayerListResponse (room );
139141
140142 SystemNoticeResponse systemNoticeResponse = ofPlayerEvent (player , RoomEventType .ENTER );
141143
142144 return new RoomInitialData (
143- getDestination (roomId ),
144- roomSettingResponse ,
145- gameSettingResponse ,
146- playerListResponse ,
147- systemNoticeResponse );
145+ getDestination (roomId ),
146+ roomSettingResponse ,
147+ gameSettingResponse ,
148+ playerListResponse ,
149+ systemNoticeResponse );
148150 }
149151
150152 public RoomExitData exitRoom (Long roomId , String sessionId ) {
151153
152154 Object lock = roomLocks .computeIfAbsent (roomId , k -> new Object ());
153155
154156 synchronized (lock ) {
155-
156157 Room room = findRoom (roomId );
157158
158159 String destination = getDestination (roomId );
159160
160- Player removePlayer = getRemovePlayer (room ,sessionId );
161+ Player removePlayer = getRemovePlayer (room , sessionId );
161162
162163 /* 방 삭제 */
163- if (isLastPlayer (room ,sessionId )) {
164- return removeRoom (room ,destination );
164+ if (isLastPlayer (room , sessionId )) {
165+ return removeRoom (room , destination );
165166 }
166167
167168 /* 방장 변경 */
168169 if (room .isHost (removePlayer .getId ())) {
169- changeHost (room ,sessionId );
170+ changeHost (room , sessionId );
170171 }
171172
172173 /* 플레이어 삭제 */
173- removePlayer (room ,sessionId ,removePlayer );
174+ removePlayer (room , sessionId , removePlayer );
174175
175176 SystemNoticeResponse systemNoticeResponse =
176- ofPlayerEvent (removePlayer , RoomEventType .EXIT );
177+ ofPlayerEvent (removePlayer , RoomEventType .EXIT );
177178
178179 PlayerListResponse playerListResponse = toPlayerListResponse (room );
179180
@@ -184,15 +185,15 @@ public RoomExitData exitRoom(Long roomId, String sessionId) {
184185 public RoomListResponse getAllRooms () {
185186 List <Room > rooms = roomRepository .findAll ();
186187 List <RoomResponse > roomResponses =
187- rooms .stream ()
188- .map (
189- room -> {
190- Long quizId = room .getGameSetting ().getQuizId ();
191- Quiz quiz = quizService .getQuizById (quizId );
192-
193- return toRoomResponse (room , quiz );
194- })
195- .toList ();
188+ rooms .stream ()
189+ .map (
190+ room -> {
191+ Long quizId = room .getGameSetting ().getQuizId ();
192+ Quiz quiz = quizService .getQuizById (quizId );
193+
194+ return toRoomResponse (room , quiz );
195+ })
196+ .toList ();
196197 return new RoomListResponse (roomResponses );
197198 }
198199
@@ -215,8 +216,8 @@ private Player createPlayer() {
215216
216217 private Room findRoom (Long roomId ) {
217218 return roomRepository
218- .findRoom (roomId )
219- .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다." ));
219+ .findRoom (roomId )
220+ .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다." ));
220221 }
221222
222223 private boolean isLastPlayer (Room room , String sessionId ) {
@@ -235,15 +236,17 @@ private RoomExitData removeRoom(Room room, String destination) {
235236 private void changeHost (Room room , String hostSessionId ) {
236237 Map <String , Player > playerSessionMap = room .getPlayerSessionMap ();
237238
238- Optional <String > nextHostSessionId = playerSessionMap .keySet ().stream ()
239- .filter (key -> !key .equals (hostSessionId )).findFirst ();
239+ Optional <String > nextHostSessionId =
240+ playerSessionMap .keySet ().stream ()
241+ .filter (key -> !key .equals (hostSessionId ))
242+ .findFirst ();
240243
241244 Player nextHost =
242- playerSessionMap .get (
243- nextHostSessionId .orElseThrow (
244- () ->
245- new IllegalArgumentException (
246- "방장 교체 불가 - 404 해당 세션 플레이어는 존재하지않습니다." )));
245+ playerSessionMap .get (
246+ nextHostSessionId .orElseThrow (
247+ () ->
248+ new IllegalArgumentException (
249+ "방장 교체 불가 - 404 해당 세션 플레이어는 존재하지않습니다." )));
247250
248251 room .updateHost (nextHost );
249252 log .info ("user_id:{} 방장 변경 완료 " , nextHost .getId ());
@@ -253,5 +256,4 @@ private void removePlayer(Room room, String sessionId, Player removePlayer) {
253256 room .removeUserId (removePlayer .getId ());
254257 room .removeSessionId (sessionId );
255258 }
256-
257259}
0 commit comments