11package io .f1 .backend .domain .game .app ;
22
3- import static io .f1 .backend .domain .game .mapper .RoomMapper .*;
3+ import static io .f1 .backend .domain .game .mapper .RoomMapper .toGameSettingResponse ;
4+ import static io .f1 .backend .domain .game .mapper .RoomMapper .toPlayerListResponse ;
5+ import static io .f1 .backend .domain .game .mapper .RoomMapper .toRoomResponse ;
6+ import static io .f1 .backend .domain .game .mapper .RoomMapper .toRoomSetting ;
7+ import static io .f1 .backend .domain .game .mapper .RoomMapper .toRoomSettingResponse ;
8+ import static io .f1 .backend .global .util .SecurityUtils .getCurrentUserId ;
9+ import static io .f1 .backend .global .util .SecurityUtils .getCurrentUserNickname ;
410
511import io .f1 .backend .domain .game .dto .RoomExitData ;
612import io .f1 .backend .domain .game .dto .RoomInitialData ;
2329import io .f1 .backend .domain .game .store .RoomRepository ;
2430import io .f1 .backend .domain .quiz .app .QuizService ;
2531import io .f1 .backend .domain .quiz .entity .Quiz ;
26- import io .f1 .backend .domain .user .entity .User ;
2732import java .time .LocalDateTime ;
28-
29- import lombok .RequiredArgsConstructor ;
30-
31- import org .springframework .context .ApplicationEventPublisher ;
32- import org .springframework .stereotype .Service ;
33-
3433import java .util .List ;
3534import java .util .Map ;
3635import java .util .Optional ;
3736import java .util .concurrent .atomic .AtomicLong ;
3837import lombok .RequiredArgsConstructor ;
38+ import org .springframework .context .ApplicationEventPublisher ;
3939import org .springframework .stereotype .Service ;
4040
4141@ Service
@@ -47,12 +47,12 @@ public class RoomService {
4747 private final AtomicLong roomIdGenerator = new AtomicLong (0 );
4848 private final ApplicationEventPublisher eventPublisher ;
4949
50- public RoomCreateResponse saveRoom (RoomCreateRequest request , Map < String , Object > loginUser ) {
50+ public RoomCreateResponse saveRoom (RoomCreateRequest request ) {
5151
5252 // todo 제일 작은 index quizId 가져와서 gameSetting(round 설정)
5353 GameSetting gameSetting = new GameSetting (1L , 10 , 60 );
54- // todo security에서 가져오는걸로 변경
55- Player host = new Player (( Long ) loginUser . get ( "id" ), loginUser . get ( "nickname" ). toString () );
54+
55+ Player host = createPlayer ( );
5656 RoomSetting roomSetting = toRoomSetting (request );
5757
5858 Long newId = roomIdGenerator .incrementAndGet ();
@@ -69,12 +69,13 @@ public RoomCreateResponse saveRoom(RoomCreateRequest request, Map<String, Object
6969 return new RoomCreateResponse (newId );
7070 }
7171
72+
7273 public void validateRoom (RoomValidationRequest request ) {
7374
7475 Room room =
7576 roomRepository
7677 .findRoom (request .roomId ())
77- .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다." ));
78+ .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다.-1 " ));
7879
7980 if (room .getState ().equals (RoomState .PLAYING )) {
8081 throw new IllegalArgumentException ("403 게임이 진행중입니다." );
@@ -87,20 +88,19 @@ public void validateRoom(RoomValidationRequest request) {
8788 }
8889
8990 if (room .getRoomSetting ().locked ()
90- && !room .getRoomSetting ().password ().equals (request .password ())) {
91+ && !room .getRoomSetting ().password ().equals (request .password ())) {
9192 throw new IllegalArgumentException ("401 비밀번호가 일치하지 않습니다." );
9293 }
9394 }
9495
9596 public RoomInitialData enterRoom (Long roomId , String sessionId ) {
9697
9798 Room room =
98- roomRepository
99- .findRoom (roomId )
100- .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다." ));
99+ roomRepository
100+ .findRoom (roomId )
101+ .orElseThrow (() -> new IllegalArgumentException ("404 존재하지 않는 방입니다." ));
101102
102- // todo security
103- Player player = new Player (1L , "빵야빵야" );
103+ Player player = createPlayer ();
104104
105105 Map <String , Player > playerSessionMap = room .getPlayerSessionMap ();
106106
@@ -132,7 +132,7 @@ public RoomExitData exitRoom(Long roomId, String sessionId) {
132132
133133 if (playerSessionMap .size () == 1 && playerSessionMap .get (sessionId ) != null ) {
134134 roomRepository .removeRoom (roomId );
135- return new RoomExitData (destination ,null , null , true );
135+ return new RoomExitData (destination , null , null , true );
136136 }
137137
138138 Player removedPlayer = playerSessionMap .remove (sessionId );
@@ -152,25 +152,29 @@ public RoomExitData exitRoom(Long roomId, String sessionId) {
152152
153153 PlayerListResponse playerListResponse = toPlayerListResponse (room );
154154
155- return new RoomExitData (destination ,playerListResponse , systemNoticeResponse , false );
155+ return new RoomExitData (destination , playerListResponse , systemNoticeResponse , false );
156156 }
157157
158158 public RoomListResponse getAllRooms () {
159159 List <Room > rooms = roomRepository .findAll ();
160160 List <RoomResponse > roomResponses =
161- rooms .stream ()
162- .map (
163- room -> {
164- Long quizId = room .getGameSetting ().getQuizId ();
165- Quiz quiz = quizService .getQuizById (quizId );
166-
167- return toRoomResponse (room , quiz );
168- })
169- .toList ();
161+ rooms .stream ()
162+ .map (
163+ room -> {
164+ Long quizId = room .getGameSetting ().getQuizId ();
165+ Quiz quiz = quizService .getQuizById (quizId );
166+
167+ return toRoomResponse (room , quiz );
168+ })
169+ .toList ();
170170 return new RoomListResponse (roomResponses );
171171 }
172172
173173 private static String getDestination (Long roomId ) {
174- return "/sub/room/" + roomId ;
174+ return "/sub/room/" + roomId ;
175+ }
176+
177+ private static Player createPlayer () {
178+ return new Player (getCurrentUserId (), getCurrentUserNickname ());
175179 }
176180}
0 commit comments