※ 회원가입
7/25 복습과제로 있던 회원가입 부분에서 여러 조건에 맞지 않으면 회원가입 불가! 로 만들어라는 부분이 있어 처음에는 Exception으로 작업하였으나 각 상황에 맞춰 response 문구가 있으면 좋을거 같아 수정 해보려고 한다.
service에서 ResponseEntity body을 사용하거나 따로 변수를 만들어 상황에 따라 저장하고 가져오는 방법을 생각했었으나 둘 다 잘 되지 않아.. 튜터님께 질문을 드렸다.
제일 좋은 방법은 exception을 커스텀해서 사용하는 것!
이지만 이 부분은 강의를 다시 봐야할 거 같아서 나중에 내용을 추가해야할 거 같다.
지금은 Service와 Controller에서 수정할 수 있는 부분을 여쭤봤다.
추천하는 방법은 아니며 이런 방식으로 할 수 도 있다고만 알아두면 좋을 거 같다.
UserService
* return 값을 string으로 주고 가입불가 사유에 맞춰 문자열로 반환
if (user.getPassword().matches(user.getNickName())) {
return "PASSWORD_DUPLICATION";
}
if (!user.getPassword().equals(user.getCheckPassword())) {
return "PASSWORD_CHECK";
}
if (userRepository.findBynickName(user.getNickName()).isPresent()) {
return "NICKNAME_CHECK";
}
UserController
* return으로 받아온 값(문자열)로 비교하여 원하는 문구를 response
String signup = userService.signup(signupRequestDto);
if("PASSWORD_DUPLICATION".equals(signup)){
return ResponseEntity.badRequest().body(new MsgResponseDto("비밀번호를 닉네임과 다르게 입력해주세요."));
} else if ("PASSWORD_CHECK".equals(signup)) {
return ResponseEntity.badRequest().body(new MsgResponseDto("확인용 비밀번호와 비밀번호가 다릅니다."));
} else if("NICKNAME_CHECK".equals(signup)){
return ResponseEntity.badRequest().body(new MsgResponseDto("중복된 닉네임입니다."));
}