Skip to content

Commit 7d75568

Browse files
committed
✨ feat: 게임 방 생성 구현
1 parent 18c2771 commit 7d75568

File tree

15 files changed

+228
-53
lines changed

15 files changed

+228
-53
lines changed

backend/src/main/java/io/f1/backend/domain/game/Player.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

backend/src/main/java/io/f1/backend/domain/game/Room.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

backend/src/main/java/io/f1/backend/domain/game/RoomManager.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

backend/src/main/java/io/f1/backend/domain/game/RoomSetting.java

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package io.f1.backend.domain.game.api;
2+
3+
import io.f1.backend.domain.game.app.RoomService;
4+
import io.f1.backend.domain.game.dto.request.RoomCreateRequest;
5+
import jakarta.validation.Valid;
6+
import java.util.HashMap;
7+
import java.util.Map;
8+
import lombok.RequiredArgsConstructor;
9+
import org.springframework.http.HttpStatus;
10+
import org.springframework.web.bind.annotation.PostMapping;
11+
import org.springframework.web.bind.annotation.RequestBody;
12+
import org.springframework.web.bind.annotation.RequestMapping;
13+
import org.springframework.web.bind.annotation.ResponseStatus;
14+
import org.springframework.web.bind.annotation.RestController;
15+
16+
17+
@RestController
18+
@RequestMapping("/rooms")
19+
@RequiredArgsConstructor
20+
public class RoomController {
21+
22+
private final RoomService roomService;
23+
24+
@PostMapping
25+
@ResponseStatus(HttpStatus.CREATED)
26+
public Long saveRoom(@RequestBody @Valid RoomCreateRequest request) {
27+
28+
Map<String, Object> loginUser = new HashMap<>();
29+
loginUser.put("id", 1L);
30+
loginUser.put("nickname", "빵야빵야");
31+
32+
return roomService.saveRoom(request, loginUser);
33+
}
34+
35+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.f1.backend.domain.game.app;
2+
3+
import io.f1.backend.domain.game.store.RoomRepository;
4+
import io.f1.backend.domain.game.dto.request.RoomCreateRequest;
5+
import java.util.Map;
6+
import lombok.RequiredArgsConstructor;
7+
import org.springframework.stereotype.Service;
8+
9+
@Service
10+
@RequiredArgsConstructor
11+
public class RoomService {
12+
13+
private final RoomRepository roomRepository;
14+
15+
public Long saveRoom(RoomCreateRequest request,Map<String, Object> loginUser) {
16+
return roomRepository.saveRoom(request,loginUser);
17+
}
18+
19+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.f1.backend.domain.game.dto.request;
2+
3+
import jakarta.validation.constraints.Min;
4+
import jakarta.validation.constraints.NotNull;
5+
6+
public record RoomCreateRequest(@NotNull(message = "방 제목은 필수입니다.") String roomName,
7+
@NotNull(message = "인원 수 입력은 필수입니다.") @Min(value = 2, message = "방 인원 수는 최소 2명 이상이어야합니다.") Integer maxUserCount,
8+
String password,
9+
boolean locked) {
10+
11+
}

backend/src/main/java/io/f1/backend/domain/game/ConnectionState.java renamed to backend/src/main/java/io/f1/backend/domain/game/model/ConnectionState.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.f1.backend.domain.game;
1+
package io.f1.backend.domain.game.model;
22

33
public enum ConnectionState {
44
DISCONNECTED,

backend/src/main/java/io/f1/backend/domain/game/GameSetting.java renamed to backend/src/main/java/io/f1/backend/domain/game/model/GameSetting.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
package io.f1.backend.domain.game;
1+
package io.f1.backend.domain.game.model;
22

3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
@Getter
7+
@AllArgsConstructor
38
public class GameSetting {
49

510
private Long quizId;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package io.f1.backend.domain.game.model;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public class Player {
7+
8+
public final Long id;
9+
10+
public final String nickname;
11+
12+
private boolean isReady = false;
13+
14+
private ConnectionState state = ConnectionState.CONNECTED;
15+
16+
private int correctCount = 0;
17+
18+
19+
public Player(Long id, String nickname) {
20+
this.id = id;
21+
this.nickname = nickname;
22+
}
23+
}

0 commit comments

Comments
 (0)