Skip to content
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

ASAP-110 feat: 편지 열람 가능여부 검증 api 구현 및 테스트 추가 #29

Merged
merged 1 commit into from
Sep 12, 2024

Conversation

tlarbals824
Copy link
Member

  • 편지 열람 가능여부 검증 api 구현 및 테스트 추가
  • 편지 열람 검증 flow
sequenceDiagram
    participant User
    participant VerifyLetterAccessibleUsecase
    participant LetterCommandService
    participant SendLetterManagementPort
    participant UserManagementPort
    participant LetterException

    User ->> VerifyLetterAccessibleUsecase: verify(command)
    VerifyLetterAccessibleUsecase ->> LetterCommandService: verify(command)
    Note right of LetterCommandService: 편지가 이전에 검증되었는지 확인
    LetterCommandService ->> SendLetterManagementPort: verifiedLetter(DomainId(command.userId), command.letterCode)

    alt 동일한 사용자가 열람한적이 있음
        LetterCommandService ->> SendLetterManagementPort: getExpiredLetterNotNull(DomainId(command.userId), command.letterCode)
        SendLetterManagementPort -->> LetterCommandService: sendLetter
        LetterCommandService ->> VerifyLetterAccessibleUsecase: VerifyLetterAccessibleUsecase.Response(letterId = sendLetter.id.value)
    else 이전에 열람한 적 없음
        LetterCommandService ->> SendLetterManagementPort: getLetterByCodeNotNull(command.letterCode)
        SendLetterManagementPort -->> LetterCommandService: sendLetter
        LetterCommandService ->> UserManagementPort: getUserNotNull(DomainId(command.userId))
        UserManagementPort -->> LetterCommandService: user
        LetterCommandService ->> sendLetter: isSameReceiver { user.username }
        alt 수신자 이름과 동일함
            LetterCommandService ->> SendLetterManagementPort: expireLetter(DomainId(command.userId), sendLetter.id)
            SendLetterManagementPort -->> LetterCommandService: expired
            LetterCommandService ->> VerifyLetterAccessibleUsecase: VerifyLetterAccessibleUsecase.Response(letterId = sendLetter.id.value)
        else 수신자 이름과 동일하지 않음
            LetterCommandService ->> LetterException: throw InvalidLetterAccessException()
        end
    end

Loading

@tlarbals824 tlarbals824 merged commit 917f060 into main Sep 12, 2024
1 check passed
@tlarbals824 tlarbals824 deleted the ASAP-110 branch September 12, 2024 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant