Class RoomController
java.lang.Object
com.example.chessdotnet.controller.RoomController
방 관련 HTTP 요청을 처리하는 컨트롤러 클래스입니다.
- Author:
- 전종영
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.http.ResponseEntity
<RoomDTO> createRoom
(@Valid CreateRoomRequest request) 새로운 방을 생성합니다.org.springframework.http.ResponseEntity
<Void> deleteRoom
(Long roomId, Long userId) 방을 삭제하는 요청을 처리합니다.사용 가능한 모든 방의 목록을 조회합니다.org.springframework.http.ResponseEntity
<String> 일반적인 예외 발생 시 처리합니다.org.springframework.http.ResponseEntity
<String> IllegalStateException 발생 시 처리합니다.org.springframework.http.ResponseEntity
<String> RoomNotFoundException 또는 UserNotFoundException 발생 시 처리합니다.org.springframework.http.ResponseEntity
<String> UserNotInRoomException 발생 시 처리합니다.org.springframework.http.ResponseEntity
<String> handleValidationExceptions
(org.springframework.web.bind.MethodArgumentNotValidException ex) 입력 유효성 검사 실패 시 처리합니다.org.springframework.http.ResponseEntity
<RoomDTO> joinRoom
(Long roomId, @Valid JoinRoomRequest request) 사용자가 특정 방에 참여합니다.org.springframework.http.ResponseEntity
<RoomDTO> leaveRoom
(Long roomId, @Valid LeaveRoomRequest request) 사용자가 방을 나가는 요청을 처리합니다.
-
Constructor Details
-
RoomController
public RoomController()
-
-
Method Details
-
createRoom
@PostMapping("/create") public org.springframework.http.ResponseEntity<RoomDTO> createRoom(@Valid @RequestBody @Valid CreateRoomRequest request) 새로운 방을 생성합니다.- Parameters:
request
- 방 생성 요청 정보- Returns:
- 생성된 방 정보
-
joinRoom
@PostMapping("/{roomId}/join") public org.springframework.http.ResponseEntity<RoomDTO> joinRoom(@PathVariable Long roomId, @Valid @RequestBody @Valid JoinRoomRequest request) 사용자가 특정 방에 참여합니다.- Parameters:
roomId
- 참여할 방의 IDrequest
- 방 참여 요청 정보- Returns:
- 업데이트된 방 정보
-
getAvailableRooms
-
leaveRoom
@PostMapping("/{roomId}/leave") public org.springframework.http.ResponseEntity<RoomDTO> leaveRoom(@PathVariable Long roomId, @Valid @RequestBody @Valid LeaveRoomRequest request) 사용자가 방을 나가는 요청을 처리합니다.- Parameters:
roomId
- 나가려는 방의 IDrequest
- 방을 나가려는 사용자의 정보- Returns:
- 업데이트된 방 정보 또는 방이 삭제되었을 경우 204 No Content
-
deleteRoom
-
handleUserNotInRoomException
@ExceptionHandler(UserNotInRoomException.class) public org.springframework.http.ResponseEntity<String> handleUserNotInRoomException(UserNotInRoomException ex) UserNotInRoomException 발생 시 처리합니다.- Parameters:
ex
- 발생한 예외- Returns:
- 400 Bad Request 응답
-
handleIllegalStateException
@ExceptionHandler(IllegalStateException.class) public org.springframework.http.ResponseEntity<String> handleIllegalStateException(IllegalStateException ex) IllegalStateException 발생 시 처리합니다.- Parameters:
ex
- 발생한 예외- Returns:
- 400 Bad Request 응답
-
handleNotFoundExceptions
@ExceptionHandler({RoomNotFoundException.class,UserNotFoundException.class}) public org.springframework.http.ResponseEntity<String> handleNotFoundExceptions(Exception ex) RoomNotFoundException 또는 UserNotFoundException 발생 시 처리합니다.- Parameters:
ex
- 발생한 예외- Returns:
- 404 Not Found 응답
-
handleGeneralExceptions
-
handleValidationExceptions
@ExceptionHandler(org.springframework.web.bind.MethodArgumentNotValidException.class) public org.springframework.http.ResponseEntity<String> handleValidationExceptions(org.springframework.web.bind.MethodArgumentNotValidException ex) 입력 유효성 검사 실패 시 처리합니다.- Parameters:
ex
- 발생한 예외- Returns:
- 400 Bad Request 응답
-