오늘은 Request 값을 제한하기 위한 예외처리 InputLengthException 을 만들었다. Service 에서 예외처리 조건문을 작성하고 잘못 입렬된 경우 throw 로 에러를 발생시키도록 하였다.
override fun createReply(feedId: Long, request: ReplyCreateRequest ): ReplyResponse {
if(request.userName.length !in 1 .. PASSWORD_MAX)
throw InputLengthException("UserName",request.userName.length,1,USERNAME_MAX)
else if(request.password.length !in PASSWORD_MIN .. PASSWORD_MAX)
throw InputLengthException("Password",request.password.length,PASSWORD_MIN,USERNAME_MAX)
else if(request.contents.length !in 1 .. CONTENTS_MAX)
throw InputLengthException("Contents",request.password.length,1,CONTENTS_MAX)
val feed = feedRepository.findByIdAndDeletedDateTimeIsNull(feedId)
?: throw ModelNotFoundException("Feed",feedId)
return Reply(
userName = request.userName,
password = request.password,
contents = request.contents,
feed = feed
).let{replyRepository.save(it)}.toResponse()
}
제대로 에러메세지를 출력해주는 것을 확인하고 이제 Update와 Delete에도 적용을 하려는데
같은 조건문이 여러번 나오고 있어 왠지 찜찜했다. 이걸 Reply Class의 메서드로 옮길까..?
reply.chkUserName(request.userName) 요렇게? 아니면 chkCreate() 로 만들어 request를 보내서 Create 시 체크할 내용 / Update 시 체크할 내용 등으로 또 나누는게 좋을까? 고민되어 어떤 방법이 제일 보기 좋을지 리팩토링시 고려할 내용으로 체크해두기로 했다.
현재 우리 팀은 아직 테스트 파일을 작성하여 각자 테스트 후 DB를 설정할 만한 레벨은 되지 않아
postgre DB 설정을 해두긴 했지만 H2 데이터 베이스를 통해 각자 테스트를 해보고 있었다.
한 팀원분이 이를 "dev" 라는 이름의 프로필로 만들어 설정해주셨는데
applicaion.yml로