Skip to content

Commit

Permalink
refactor: page 예외처리 상세 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
urinaner committed Dec 23, 2024
1 parent 617456c commit c37e60c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@ public ResponseEntity<Long> createBoard(@RequestPart(value = "boardReqDto") @Val

@Operation(summary = "모든 게시판 조회 API", description = "모든 게시판의 리스트 반환")
@GetMapping
public ResponseDto<List<BoardResDto>> getAllBoards(@ModelAttribute PageRequestDto pageRequest) {
public ResponseDto<List<BoardResDto>> getAllBoards(@ModelAttribute @Valid PageRequestDto pageRequest) {

Page<BoardResDto> boardList = boardService.getAllBoards(pageRequest.toPageable());
return ResponseDto.ok(boardList.getNumber(), boardList.getTotalPages(), boardList.getContent());
}
@Operation(summary = "카테고리별 게시판 조회 API", description = "카테고리별 게시판 리스트 반환")
@GetMapping("/category/{category}")
public ResponseDto<List<BoardResDto>> getBoardsByCategory(@PathVariable("category") Category category,
@ModelAttribute PageRequestDto pageRequest) {
@ModelAttribute @Valid PageRequestDto pageRequest) {

Page<BoardResDto> boardList = boardService.getBoardsByCategory(category, pageRequest.toPageable());
return ResponseDto.ok(boardList.getNumber(), boardList.getTotalPages(), boardList.getContent());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Pattern;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.domain.PageRequest;
Expand All @@ -11,17 +12,22 @@
@Getter
@Setter
public class PageRequestDto {
@Min(0)

@Min(value = 0, message = "페이지 번호는 0 이상이어야 합니다.")
private int page = 0;

@Min(1) @Max(100)
@Min(value = 1, message = "페이지 크기는 최소 1이어야 합니다.")
@Max(value = 100, message = "페이지 크기는 최대 100이어야 합니다.")
private int size = 10;

@Pattern(regexp = "^[a-zA-Z0-9_]+$", message = "정렬 기준은 알파벳, 숫자, 또는 언더스코어(_)만 포함할 수 있습니다.")
private String sort = "id";

@Pattern(regexp = "^(ASC|DESC)$", message = "정렬 방향은 'ASC' 또는 'DESC'만 가능합니다.")
private String sortDirection = "ASC";

public Pageable toPageable() {
Sort.Direction direction = Sort.Direction.valueOf(sortDirection.toUpperCase());
return PageRequest.of(page, size, direction, sort);
}
}
}

0 comments on commit c37e60c

Please sign in to comment.