데이터 검증에 대해 사용한 if 조건문을
validate 메소드를 사용해서 정리했다
기존코드
UserService.java
// user가 존재하는지 확인
User user = userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found"));
// 탈퇴한 유저가 아닌지 확인
if (user.isDeleted()) {
throw new IllegalArgumentException("User is deleted");
}
수정된 코드
Preconditions.java
public class Preconditions {
public static void validate(boolean expression, ErrorCode errorCode) {
if (!expression) {
throw new IllegalArgumentException(errorCode.getMessage());
}
}
}
UserRepository.java
default User findByIdOrElseThrow(Long id) {
return findById(id)
.orElseThrow(
() -> new NoSuchElementException(ErrorCode.USER_NOT_FOUND.getMessage()));
}
UserService.java
User user = userRepository.findByIdOrElseThrow(id);
Preconditions.validate(!user.isDeleted(), ErrorCode.DELETED_USER);
'TIL' 카테고리의 다른 글
테스트 코드 특강 (0) | 2024.09.10 |
---|---|
예외처리와 공통응답 (0) | 2024.09.09 |
Code Convention 도구 "Spotless" (0) | 2024.09.05 |
팀과제 피드백 (0) | 2024.09.04 |
jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.NotBlank' validating type 'java.lang.Long'. Check configuration for error (0) | 2024.09.03 |