DAY-31]240111 TIL( Spring - NewsFeed Project )

JUNHYUK CHANG·2024년 1월 11일
1

TIL

목록 보기
3/33

오늘은 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 시 체크할 내용 등으로 또 나누는게 좋을까? 고민되어 어떤 방법이 제일 보기 좋을지 리팩토링시 고려할 내용으로 체크해두기로 했다.


IntelliJ Active Profile 설정으로 어플리케이션 전환하기!

현재 우리 팀은 아직 테스트 파일을 작성하여 각자 테스트 후 DB를 설정할 만한 레벨은 되지 않아
postgre DB 설정을 해두긴 했지만 H2 데이터 베이스를 통해 각자 테스트를 해보고 있었다.

한 팀원분이 이를 "dev" 라는 이름의 프로필로 만들어 설정해주셨는데

applicaion.yml로

0개의 댓글