이전에 만든 테스트가 동작하게, 하나씩 만들어보아야 겠다.
일단, 아이디 중복을 처리했을 때 동작하는지 코드를 만들어보자.
private void validateUsername(String username){
if(memberRepository.findByUsername(username).isPresent())
throw new UsernameAlreadyInUseException();
}
이런식으로 중복이 되는 것을 닉네임, 이메일에도 처리해주었다.
validateUsername(registerRequestDto.getUsername());
validateNickname(registerRequestDto.getNickname());
validateEmail(registerRequestDto.getEmail());
3개의 validation을 이용해, 값이 존재하는지 확인하고 있을 경우 예외를 반환하게 처리했다.
validatePasswordCheck(registerRequestDto.getPassword(), registerRequestDto.getPasswordCheck());
이후엔 비밀번호를 확인시키는 기능을 구현했는데,
String.equals(String)의 구조로 간단한 메서드였다.
registerRequestDto.setPassword(bCryptPasswordEncoder.encode(registerRequestDto.getPassword()));
Member member = new Member(registerRequestDto);
memberRepository.save(member);
마지막엔 password를 암호화시켜 담은 후, Member에 생성자로 넣어주었다.
그렇게 만든 값을 repository에 저장하는 방식으로 로직을 구현하였다.
@Transactional
public void registerNewMember(RegisterRequestDto registerRequestDto){
validateUsername(registerRequestDto.getUsername());
validateNickname(registerRequestDto.getNickname());
validateEmail(registerRequestDto.getEmail());
validatePasswordCheck(registerRequestDto.getPassword(), registerRequestDto.getPasswordCheck());
registerRequestDto.setPassword(bCryptPasswordEncoder.encode(registerRequestDto.getPassword()));
Member member = new Member(registerRequestDto);
memberRepository.save(member);
}
이렇게 전체적인 메서드를 만들고, 테스트를 동작시켜보았다.
단순하지만, 첫 번째로 회원가입에 대한 기능들을 만들어보았다.
이제, 정보조회와 수정, 마지막으로 로그인까지 로직을 만들어볼 계획이다.
'스프링 공부 > 게시판 프로젝트 만들기' 카테고리의 다른 글
[스프링] 25. 조회에 대한 서비스 로직 만들어 테스트하기...? (0) | 2023.02.07 |
---|---|
[스프링] 24. Member 데이터 변경을 비즈니스 로직에 추가하기 (0) | 2023.02.07 |
[스프링] 22. MemberService의 테스트 : 회원가입 만들기 (0) | 2023.02.06 |
[스프링] 21. MemberCustomRepository : 조회를 엔티티로 반환하는게 과연 좋을까? (0) | 2023.02.05 |
[스프링] 20. QueryDsl을 이용해 MemberCustomRepository를 더 깨끗하게!!! (0) | 2023.02.05 |