Class RoomController

java.lang.Object
com.example.chessdotnet.controller.RoomController

@RestController @RequestMapping("/api/rooms") public class RoomController extends Object
방 관련 HTTP 요청을 처리하는 컨트롤러 클래스입니다.
Author:
전종영
  • 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 - 참여할 방의 ID
      request - 방 참여 요청 정보
      Returns:
      업데이트된 방 정보
    • getAvailableRooms

      @GetMapping("/available") public org.springframework.http.ResponseEntity<List<RoomDTO>> getAvailableRooms()
      사용 가능한 모든 방의 목록을 조회합니다.
      Returns:
      사용 가능한 방 목록
    • leaveRoom

      @PostMapping("/{roomId}/leave") public org.springframework.http.ResponseEntity<RoomDTO> leaveRoom(@PathVariable Long roomId, @Valid @RequestBody @Valid LeaveRoomRequest request)
      사용자가 방을 나가는 요청을 처리합니다.
      Parameters:
      roomId - 나가려는 방의 ID
      request - 방을 나가려는 사용자의 정보
      Returns:
      업데이트된 방 정보 또는 방이 삭제되었을 경우 204 No Content
    • deleteRoom

      @DeleteMapping("/{roomId}") public org.springframework.http.ResponseEntity<Void> deleteRoom(@PathVariable Long roomId, @RequestParam Long userId)
      방을 삭제하는 요청을 처리합니다.
      Parameters:
      roomId - 삭제할 방의 ID
      userId - 삭제를 요청한 사용자의 ID
      Returns:
      204 No Content
    • 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

      @ExceptionHandler(Exception.class) public org.springframework.http.ResponseEntity<String> handleGeneralExceptions(Exception ex)
      일반적인 예외 발생 시 처리합니다.
      Parameters:
      ex - 발생한 예외
      Returns:
      500 Internal Server Error 응답
    • 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 응답