-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: 메일 발송 요청 로직에 도메인 서비스 적용 #488
refactor: 메일 발송 요청 로직에 도메인 서비스 적용 #488
Conversation
Caution Review failedThe pull request is closed. Walkthrough이 변경 사항은 대학 이메일 인증 링크 발송 프로세스를 개선하기 위한 것입니다. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant UnivEmailVerificationLinkSendService
participant HongikUnivEmailValidator
participant MemberRepository
User->>UnivEmailVerificationLinkSendService: send(univEmail)
UnivEmailVerificationLinkSendService->>MemberRepository: existsByUnivEmail(univEmail)
MemberRepository-->>UnivEmailVerificationLinkSendService: exists
UnivEmailVerificationLinkSendService->>HongikUnivEmailValidator: validateSendUnivEmailVerificationLink(univEmail, exists)
HongikUnivEmailValidator-->>UnivEmailVerificationLinkSendService: validationResult
UnivEmailVerificationLinkSendService->>User: emailSentOrError
Assessment against linked issues
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
Job Summary for GradleCheck Style and Test to Develop :: build-test
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- src/main/java/com/gdschongik/gdsc/domain/email/application/UnivEmailVerificationLinkSendService.java (4 hunks)
- src/main/java/com/gdschongik/gdsc/global/util/email/HongikUnivEmailValidator.java (1 hunks)
- src/test/java/com/gdschongik/gdsc/domain/email/domain/HongikUnivEmailValidatorTest.java (2 hunks)
Additional comments not posted (11)
src/main/java/com/gdschongik/gdsc/global/util/email/HongikUnivEmailValidator.java (4)
5-10
: LGTM! 필요한 import 문이 추가되었습니다.추가된
Optional
,Member
,@DomainService
import 문은 새로운 기능을 위해 필요합니다.
12-12
: LGTM! 클래스 주석이 적절하게 변경되었습니다.
@Component
에서@DomainService
로 변경된 것은 도메인 주도 설계 원칙과 일치합니다.
15-15
: LGTM! 메서드 시그니처가 적절하게 변경되었습니다.
validate
메서드가 이제Optional<Member>
매개변수를 받아Member
객체의 존재를 고려하여 이메일을 검증할 수 있게 되었습니다.
24-25
: LGTM! 새로운 로직이 적절하게 추가되었습니다.
optionalMember
가 존재하는 경우CustomException
을 던지는 로직이 추가되어, 이미 존재하는 멤버가 있는 경우 검증이 성공하지 않도록 합니다.src/main/java/com/gdschongik/gdsc/domain/email/application/UnivEmailVerificationLinkSendService.java (3)
15-15
: LGTM! 필요한 import 문이 추가되었습니다.추가된
Slf4j
import 문은 로깅 기능을 위해 필요합니다.
19-19
: LGTM! 클래스 주석이 적절하게 추가되었습니다.
@Slf4j
추가로 클래스 내에서 로깅이 가능해져 추적성과 디버깅 기능이 향상됩니다.
48-50
: LGTM! 메서드 로직이 적절하게 리팩토링되었습니다.
send
메서드가 리팩토링되어 검증 로직이 직접 통합되고 로깅이 추가되었습니다. 이로 인해 제어 흐름이 단순해지고 메서드 호출 수가 줄어들어 코드가 더 깔끔해지고 성능이 향상될 수 있습니다.src/test/java/com/gdschongik/gdsc/domain/email/domain/HongikUnivEmailValidatorTest.java (4)
1-1
: LGTM! 패키지 선언이 적절하게 업데이트되었습니다.패키지 선언이 업데이트되어 패키지 계층 구조의 재구성을 반영합니다.
3-11
: LGTM! 필요한 import 문이 추가되었습니다.추가된
Optional
,Member
import 문은 업데이트된 테스트 케이스를 위해 필요합니다.
24-29
: LGTM! 테스트 케이스가 적절하게 업데이트되었습니다.테스트 케이스가 새로운
validate
메서드 시그니처를 반영하도록 업데이트되어 새로운 기능을 정확하게 테스트합니다.
93-105
: LGTM! 새로운 테스트 케이스가 적절하게 추가되었습니다.이미 등록된 멤버의 이메일 주소를 검증할 때 예외가 발생하는지 확인하는 새로운 테스트 케이스가 추가되어 검증 로직의 견고성이 향상됩니다.
Job Summary for GradleCheck Style and Test to Develop :: build-test
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좋습니다!!
별개로, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
워딩 변경하는거 좋습니다
옛날에 작업된 로직이라 지금 쓰는 워딩과 다른 것 같네요
public class HongikUnivEmailValidator { | ||
|
||
public void validate(String email) { | ||
public void validateSendUnivEmailVerificationLink(String email, Optional<Member> optionalMember) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
optionalMember보다 exists 쿼리 써도 되지 않을까 싶네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그게 더 깔끔하기는 하겠네요
수정 후 머지하겠습니다~
Job Summary for GradleCheck Style and Test to Develop :: build-test
|
🌱 관련 이슈
📌 작업 내용 및 특이사항
HongikUnivEmailValidator
에@DomainService
를 달았습니다.HongikUnivEmailValidator
에 추가했습니다.📝 참고사항
📚 기타
Summary by CodeRabbit
신규 기능
버그 수정
테스트