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
@@ -129,26 +131,25 @@ public RoomInitialData initializeRoomSocket(Long roomId, String sessionId) {
129131 Quiz quiz = quizService .getQuizById (quizId );
130132
131133 GameSettingResponse gameSettingResponse =
132- toGameSettingResponse (room .getGameSetting (), quiz );
134+ toGameSettingResponse (room .getGameSetting (), quiz );
133135
134136 PlayerListResponse playerListResponse = toPlayerListResponse (room );
135137
136138 SystemNoticeResponse systemNoticeResponse = ofPlayerEvent (player , RoomEventType .ENTER );
137139
138140 return new RoomInitialData (
139- getDestination (roomId ),
140- roomSettingResponse ,
141- gameSettingResponse ,
142- playerListResponse ,
143- systemNoticeResponse );
141+ getDestination (roomId ),
142+ roomSettingResponse ,
143+ gameSettingResponse ,
144+ playerListResponse ,
145+ systemNoticeResponse );
144146 }
145147
146148 public RoomExitData exitRoom (Long roomId , String sessionId ) {
147149
148150 Object lock = roomLocks .computeIfAbsent (roomId , k -> new Object ());
149151
150152 synchronized (lock ) {
151-
152153 Room room = findRoom (roomId );
153154
154155 Map <String , Player > playerSessionMap = room .getPlayerSessionMap ();
@@ -157,10 +158,10 @@ public RoomExitData exitRoom(Long roomId, String sessionId) {
157158
158159 Player removePlayer = playerSessionMap .get (sessionId );
159160
160- if (removePlayer == null ) {
161- room .getUserIdSessionMap ().remove (getCurrentUserId ());
162- throw new IllegalIdentifierException ("404 세션 없음 비정상적인 퇴장 요청" );
163- }
161+ if (removePlayer == null ) {
162+ room .getUserIdSessionMap ().remove (getCurrentUserId ());
163+ throw new IllegalIdentifierException ("404 세션 없음 비정상적인 퇴장 요청" );
164+ }
164165
165166 /* 방 삭제 */
166167 if (playerSessionMap .size () == 1 && playerSessionMap .containsKey (sessionId )) {
@@ -173,15 +174,17 @@ public RoomExitData exitRoom(Long roomId, String sessionId) {
173174 /* 방장 변경 */
174175 if (room .getHost ().getId ().equals (removePlayer .getId ())) {
175176
176- Optional <String > nextHostSessionId = playerSessionMap .keySet ().stream ()
177- .filter (key -> !key .equals (sessionId )).findFirst ();
177+ Optional <String > nextHostSessionId =
178+ playerSessionMap .keySet ().stream ()
179+ .filter (key -> !key .equals (sessionId ))
180+ .findFirst ();
178181
179182 Player nextHost =
180- playerSessionMap .get (
181- nextHostSessionId .orElseThrow (
182- () ->
183- new IllegalArgumentException (
184- "방장 교체 불가 - 404 해당 세션 플레이어는 존재하지않습니다." )));
183+ playerSessionMap .get (
184+ nextHostSessionId .orElseThrow (
185+ () ->
186+ new IllegalArgumentException (
187+ "방장 교체 불가 - 404 해당 세션 플레이어는 존재하지않습니다." )));
185188
186189 room .updateHost (nextHost );
187190 log .info ("user_id:{} 방장 변경 완료 " , nextHost .getId ());
@@ -191,7 +194,7 @@ public RoomExitData exitRoom(Long roomId, String sessionId) {
191194 playerSessionMap .remove (sessionId );
192195
193196 SystemNoticeResponse systemNoticeResponse =
194- ofPlayerEvent (removePlayer , RoomEventType .EXIT );
197+ ofPlayerEvent (removePlayer , RoomEventType .EXIT );
195198
196199 PlayerListResponse playerListResponse = toPlayerListResponse (room );
197200
@@ -202,15 +205,15 @@ public RoomExitData exitRoom(Long roomId, String sessionId) {
202205 public RoomListResponse getAllRooms () {
203206 List <Room > rooms = roomRepository .findAll ();
204207 List <RoomResponse > roomResponses =
205- rooms .stream ()
206- .map (
207- room -> {
208- Long quizId = room .getGameSetting ().getQuizId ();
209- Quiz quiz = quizService .getQuizById (quizId );
210-
211- return toRoomResponse (room , quiz );
212- })
213- .toList ();
208+ rooms .stream ()
209+ .map (
210+ room -> {
211+ Long quizId = room .getGameSetting ().getQuizId ();
212+ Quiz quiz = quizService .getQuizById (quizId );
213+
214+ return toRoomResponse (room , quiz );
215+ })
216+ .toList ();
214217 return new RoomListResponse (roomResponses );
215218 }
216219
@@ -224,9 +227,7 @@ private Player createPlayer() {
224227
225228 private Room findRoom (Long roomId ) {
226229 return roomRepository
227- .findRoom (roomId )
228- .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다." ));
230+ .findRoom (roomId )
231+ .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다." ));
229232 }
230-
231-
232233}
0 commit comments