Skip to content

refactor: member relink and member_team initiation#426

Merged
BlackBean99 merged 1 commit intodevelopfrom
feat/#422
Mar 18, 2026
Merged

refactor: member relink and member_team initiation#426
BlackBean99 merged 1 commit intodevelopfrom
feat/#422

Conversation

@BlackBean99
Copy link
Collaborator

@BlackBean99 BlackBean99 commented Mar 18, 2026

Summary

  • 관련 있는 Issue를 태그해주세요.

Tasks

  • 해당 PR에 포함된 작업을 작성해주세요.
  • 해당 PR에 포함된 작업을 작성해주세요.

ETC

Screenshot

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • OAuth 계정 복구 및 재연결 기능 추가
    • 멤버 팀 자동 초기화 및 기본 팀 할당 기능 추가
  • 개선사항

    • 로그인 프로세스에서 멤버 팀 초기화 로직 강화
    • 로그인 후보자 선택 로직 개선으로 안정성 향상

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 18, 2026

Caution

Review failed

Pull request was closed or merged during review

Walkthrough

회원 로그인 및 가입 흐름에 회원 팀 초기화를 추가하고, 고아 상태의 OAuth 회원에 대한 복구 로직을 도입하며, 삭제된 회원을 제외하도록 회원 선택 로직을 정제하고, OAuth 제공자 재연결 기능을 추가합니다.

Changes

Cohort / File(s) Summary
Member Login and Authentication Services
MemberLoginService.kt, AppleAuthService.kt, EmailPasswordAuthService.kt, MemberCommandService.kt
MemberTeamService 의존성을 추가하고 로그인/가입 시 회원 팀 초기화를 수행. 로그인 후보 선택에서 논리적으로 삭제된 회원(deletedAt != null)을 필터링. AppleAuthService와 MemberLoginService에서 고아 상태의 OAuth 회원 복구 로직 추가(recoverOrCreateMemberForOrphanedOAuth).
Member Team Service
MemberTeamService.kt
MemberPersistencePort 의존성과 configurable defaultTeamId를 추가. 새로운 ensureMemberTeamInitialized(memberId) 메서드로 회원을 기본 팀에 자동 할당.
OAuth Service Layer
MemberOAuthService.kt, MemberOAuthPersistencePort.kt
MemberOAuthService에 새로운 public 메서드 relinkMemberOAuthProvider(member, authAttribute) 추가. 포트 인터페이스에 relinkToMember(provider, externalId, member) 메서드 정의.
OAuth Persistence
MemberOAuthRepository.kt
relinkToMember 메서드 구현으로 기존 OAuth 링크의 회원을 변경하는 기능 제공. 기존 id, externalId, provider는 유지하면서 member만 업데이트.

Sequence Diagram

sequenceDiagram
    participant Client
    participant AuthService as Auth Service
    participant MemberLoginSvc as Member Login Service
    participant MemberOAuthSvc as Member OAuth Service
    participant MemberTeamSvc as Member Team Service
    participant DB as Database

    Client->>AuthService: Login with OAuth Credentials
    AuthService->>MemberLoginSvc: selectLoginCandidate()
    MemberLoginSvc->>DB: Query member by email (exclude deletedAt != null)
    DB-->>MemberLoginSvc: Member or null
    alt Member not found
        MemberLoginSvc->>MemberLoginSvc: recoverOrCreateMemberForOrphanedOAuth()
        MemberLoginSvc->>DB: Create or find member
        DB-->>MemberLoginSvc: Member
        MemberLoginSvc->>MemberOAuthSvc: relinkMemberOAuthProvider()
        MemberOAuthSvc->>DB: Relink OAuth to member
        DB-->>MemberOAuthSvc: Success
    end
    MemberLoginSvc->>MemberTeamSvc: ensureMemberTeamInitialized(memberId)
    MemberTeamSvc->>DB: Check member's team assignment
    DB-->>MemberTeamSvc: Team or none
    alt No team assigned and default team configured
        MemberTeamSvc->>DB: Create MemberTeam with default team
        DB-->>MemberTeamSvc: Success
    end
    MemberTeamSvc-->>MemberLoginSvc: Initialization complete
    MemberLoginSvc-->>AuthService: Login successful
    AuthService-->>Client: Auth token
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 11.54% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경 사항의 주요 내용을 명확하게 요약합니다. 멤버 재연결 및 멤버 팀 초기화라는 두 가지 핵심 기능 추가를 정확하게 나타냅니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/#422
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

You can customize the high-level summary generated by CodeRabbit.

Configure the reviews.high_level_summary_instructions setting to provide custom instructions for generating the high-level summary.

@BlackBean99 BlackBean99 merged commit a12ab3d into develop Mar 18, 2026
1 of 2 checks passed
@BlackBean99 BlackBean99 deleted the feat/#422 branch March 18, 2026 14:49
BlackBean99 added a commit that referenced this pull request Mar 18, 2026
…aving (#428)

* add response field (memberId, cohortId) (#391)

* initiation of new member and new announcement (#393)

* appleOAuth name resolution (#395)

* whitelist email -> memberId parameter changing (#398)

* whitelist email login (parameter email -> memberId) (#399)

* whitelist email -> memberId parameter changing

* whitelist email -> memberId parameter changing

* refactor/#397 (#400)

* whitelist email -> memberId parameter changing

* whitelist email -> memberId parameter changing

* whitelist email -> memberId parameter changing

* whitelist email -> memberId parameter changing (#402)

* member_roles auto align (#405)

* re-sync member_roles after whitelist (#407)

* filtered member overview by cohort (#412)

* filtered member overview by cohort

* after_party_invitees 보상로직

* AFTERPARTY_COMPENSATIONRESPONSE

* feat: member overview true/false of latest cohort (#414)

* feat: member overview true/false of latest cohort

* feat: member overview true/false of latest cohort

* feat: invitees invitation iniation (#417)

* feat: part null safe (#420)

* refactor : Session url open and Cohort value adding (#425)

* refactor: member relink and member_team initiation (#426)

* PENDING initiation (#427)

* refactor: member relink and member_team initiation

* refactor : PENDING refresh
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