반환 값을 리스트로 뽑고 싶었다.
에러가 여러개일 땐 리스트에 담아서 그 리스트를 반환시키고 에러가 한개일 땐 그 한개만 반환하는 것... 그것이 내가 원하는 것이었다.
stream을 쓰면 간단하게 표현할 수 있지만 머리가 복잡할 땐 일단 혼돈의 코드를 먼저 짜본다!
ErrorResponse errorResponse = ErrorResponse.builder()
.httpStatus(HttpStatus.BAD_REQUEST)
.detail(errorMessage.toString())
.build();
if(errorMessage.size() > 1 ) {
List<ErrorResponse> list = new ArrayList<>();
for (Object o : errorMessage) {
errorResponse = ErrorResponse.builder()
.httpStatus(HttpStatus.BAD_REQUEST)
.detail(String.valueOf(o))
.build();
list.add(errorResponse);
}
return ResponseEntity.status(errorResponse.getHttpStatus()).body(CommonResponse.fail(list));
}
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(CommonResponse.fail(errorResponses));
음음
길고 지저분하다.
이것을 stream을 사용하여 간결하게 줄일 수 있다.
List<ErrorResponse> errorResponses = errorMessage.stream().map(v -> ErrorResponse.builder()
.httpStatus(HttpStatus.BAD_REQUEST)
.detail(v)
.build()).toList();
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(CommonResponse.fail(errorResponses));
👏👏👏👏
'TIL' 카테고리의 다른 글
[TIL] Response값을 @JsonInclude 사용하여 조정해보자.. (0) | 2023.08.29 |
---|---|
git clone 할 때 에러 : Support for password authentication was removed on (0) | 2023.08.27 |
[TIL] - spring annotation을 만들어 보았다. (0) | 2023.08.08 |
[TIL] Spring validation annotation (0) | 2023.08.01 |
[TIL] 프로세스의 끝부분에서 에러가 났는데 그게 하나의 트랜잭션이라서... (0) | 2023.07.27 |