From c4782e95bacf4c11b8804b864dfeb29554f9213d Mon Sep 17 00:00:00 2001 From: iqpizza6349 Date: Wed, 22 Feb 2023 22:56:08 +0900 Subject: [PATCH] :recycle: :: (#12) update exception standard to custom --- .../usecase/cetification/UserRecoveryUseCase.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/User-Domain/src/main/java/com/dgsw/cns/user/usecase/cetification/UserRecoveryUseCase.java b/User-Domain/src/main/java/com/dgsw/cns/user/usecase/cetification/UserRecoveryUseCase.java index 17964be..d6f35c0 100644 --- a/User-Domain/src/main/java/com/dgsw/cns/user/usecase/cetification/UserRecoveryUseCase.java +++ b/User-Domain/src/main/java/com/dgsw/cns/user/usecase/cetification/UserRecoveryUseCase.java @@ -14,15 +14,12 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; -import java.util.NoSuchElementException; +import java.time.ZoneId; @UseCase @RequiredArgsConstructor public class UserRecoveryUseCase implements UserRecoveryApi { - // TODO: 2023-02-16 UserRecoveryApi 가 SRP 를 위배하는 상태임 - // 하지만 이메일 인증은 회원 리커버리 파트 중 하나이기에 어찌보면 SRP 를 제대로 지킨 것일 수 도 있음 - private final QueryUserSpi queryUserSpi; private final EmailCertificationSpi emailCertificationSpi; private final RandomCodeSpi randomCodeSpi; @@ -48,11 +45,11 @@ public void resetPassword(MemberRecoveryPasswordVO memberRecoveryPasswordVO) { final String code = memberRecoveryPasswordVO.getVerificationCode(); if (!emailCertificationSpi.matches(code)) { - throw new IllegalStateException("인증코드와 일치하지 않습니다."); + throw new Member.CertificationCodeMismatchException(); } Member member = queryUserSpi.findUserByEmail(email) - .orElseThrow(() -> new NoSuchElementException("존재하지 않는 회원입니다.")); + .orElseThrow(Member.MemberNotFoundException::new); member.setPassword(password); queryUserSpi.saveUser(member); } @@ -66,6 +63,7 @@ public void sendVerificationCode(String email) { protected LocalDate stringToLocalDate(String data) throws ParseException { final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - return LocalDate.from(dateFormat.parse(data).toInstant()); + return LocalDate.from(dateFormat.parse(data).toInstant() + .atZone(ZoneId.of("Asia/Seoul")).toLocalDate()); } }