Conversation
Feature/13 user
* feat : google login 구현 완료 (ios 구현 중)
* feat : google login 구현 완료 * fix : user hard delete * feat : apple 로그인 구현 및 ddl-auto -> update 변경
* 약관 엔티티 생성 및 연관관계 설정 * 회원가입에 약관 저장 로직 추가 * 서버에서 idToken을 받아올 수 없으므로 단순히 이메일로 accessToken을 받아오는 test API 추가
|
Caution Review failedThe pull request is closed. 📝 Walkthrough요약이 PR은 사용자 약관 동의 기능을 Google 및 Apple 회원가입 흐름에 추가합니다. 클라이언트는 회원가입 요청 시 동의한 약관 목록을 전송하고, AuthService는 이를 검증하여 UserTermAgreement 엔티티로 변환하고 사용자에게 연결합니다. 새로운 Term, TermCode, UserTermAgreement 엔티티와 TermRepository를 도입하며, 약관 검증 실패 시 두 가지 새로운 에러 코드(INVALID_TERM, PLEASE_AGREE_TERM)를 반환합니다. Walkthrough이 PR은 사용자 약관 동의 기능을 Google/Apple 회원가입 프로세스에 통합합니다. GoogleAndAppleSignupRequest DTO에 agreedTerms 필드를 추가하고, 새로운 Term 및 UserTermAgreement JPA 엔티티를 생성하여 약관 정보를 관리합니다. TermRepository는 약관을 제목이나 필수 여부로 조회할 수 있는 쿼리 메서드를 제공합니다. AuthService의 Google 회원가입 로직은 요청된 약관이 데이터베이스에 존재하고 필수 약관이 모두 포함되어 있는지 검증한 후, UserTermAgreement 관계를 생성하여 사용자에게 연결합니다. Sequence Diagram(s)sequenceDiagram
actor Client
participant AuthService
participant TermRepository
participant UserRepository
participant Database
Client->>AuthService: googleSignup(GoogleAndAppleSignupRequest)
note right of Client: agreedTerms: ["AGE_OVER_14", "SERVICE_USE"]
AuthService->>UserRepository: User 정보 업데이트
UserRepository->>Database: User 저장
Database-->>UserRepository: User 반환
UserRepository-->>AuthService: User 반환
AuthService->>TermRepository: findAllByTitle(agreedTerms)
TermRepository->>Database: 약관 목록 조회
Database-->>TermRepository: Term 목록 반환
TermRepository-->>AuthService: Term 목록 반환
rect rgb(200, 220, 250)
note right of AuthService: 약관 검증 단계
AuthService->>AuthService: 동의 약관 수 == 조회된 약관 수?
alt 불일치
AuthService-->>Client: INVALID_TERM 에러
end
end
AuthService->>TermRepository: findRequiredTerm()
TermRepository->>Database: 필수 약관 조회
Database-->>TermRepository: 필수 Term 목록 반환
TermRepository-->>AuthService: 필수 Term 목록 반환
rect rgb(220, 250, 220)
note right of AuthService: 필수 약관 확인
AuthService->>AuthService: 모든 필수 약관이 동의되었는가?
alt 미동의
AuthService-->>Client: PLEASE_AGREE_TERM 에러
end
end
rect rgb(250, 240, 200)
note right of AuthService: 약관 연결 생성
AuthService->>AuthService: 각 Term별 UserTermAgreement 생성
AuthService->>AuthService: User.addTerms(agreements)
end
AuthService->>UserRepository: 약관 연결을 포함한 User 저장
UserRepository->>Database: User 및 UserTermAgreement 영속화
Database-->>UserRepository: 저장 완료
UserRepository-->>AuthService: User 반환
AuthService-->>Client: 회원가입 성공 (JWT 토큰 반환)
Possibly related PRs
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (13)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
📝 상세 내용
Summary by CodeRabbit
릴리스 노트
New Features
Bug Fixes
✏️ Tip: You can customize this high-level summary in your review settings.