Skip to content

feat: part null safe#420

Merged
BlackBean99 merged 1 commit intodevelopfrom
hotfix/#419
Mar 14, 2026
Merged

feat: part null safe#420
BlackBean99 merged 1 commit intodevelopfrom
hotfix/#419

Conversation

@BlackBean99
Copy link
Collaborator

@BlackBean99 BlackBean99 commented Mar 14, 2026

Summary

Tasks

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

ETC

Screenshot

Summary by CodeRabbit

릴리스 노트

  • 버그 수정

    • 멤버 등록 프로세스에서 미완료 상태 처리 개선
    • 선택적 데이터 필드에 대한 null 값 처리 개선
  • 리팩토링

    • 세션 정책 변경 감지 로직 최적화
    • 불필요한 환경 설정 의존성 제거로 코드 간소화

@BlackBean99 BlackBean99 self-assigned this Mar 14, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 14, 2026

Caution

Review failed

Pull request was closed or merged during review

Walkthrough

세션 출석 조회 NPE 해결을 위해 part 필드를 여러 attendance 관련 클래스에서 non-nullable에서 nullable로 변경하고, Member 생성 방식을 Member.create()에서 Member.createPending()으로 변경하며, 세션 정책 변경 감지 로직을 명시적 필드 비교로 리팩토링했습니다.

Changes

Cohort / File(s) Summary
Attendance Response Models
application/src/main/kotlin/core/application/attendance/presentation/response/DetailAttendancesBySessionResponse.kt, application/src/main/kotlin/core/application/attendance/presentation/response/DetailMemberAttendancesResponse.kt, application/src/main/kotlin/core/application/attendance/presentation/response/MemberAttendanceResponse.kt
part 필드를 String에서 String?으로 변경하여 null 값 허용. NPE 방지 위해 nullable 타입으로 변경.
Attendance Query Models
domain/src/main/kotlin/core/domain/attendance/port/outbound/query/MemberAttendanceQueryModel.kt, domain/src/main/kotlin/core/domain/attendance/port/outbound/query/MemberDetailAttendanceQueryModel.kt, domain/src/main/kotlin/core/domain/attendance/port/outbound/query/SessionAttendanceQueryModel.kt, domain/src/main/kotlin/core/domain/attendance/port/outbound/query/SessionDetailAttendanceQueryModel.kt
part 필드를 String에서 String?으로 변경하여 null 값 수용.
Attendance Repository
persistence/src/main/kotlin/core/persistence/attendance/repository/AttendanceRepository.kt
네 개의 쿼리 모델 구성에서 part = record[MEMBERS.PART]!!에서 part = record[MEMBERS.PART]로 변경하여 nullable 값 처리.
Member Service
application/src/main/kotlin/core/application/member/application/service/MemberLoginService.kt, application/src/main/kotlin/core/application/member/application/service/auth/AppleAuthService.kt
Member 생성을 Member.create()에서 Member.createPending()으로 변경. AppleAuthService에서 Environment 의존성 제거.
Session Service
application/src/main/kotlin/core/application/session/application/service/SessionCommandService.kt, application/src/main/kotlin/core/application/session/application/service/SessionQueryService.kt
hasChangedComparedTo 확장 함수 제거 및 attendanceStart, lateStart, absentStart 필드에 대한 명시적 동등성 비교로 변경.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Changes to Member creation (Member.create → Member.createPending) and AppleAuthService constructor are out of scope from the linked issue #419 which focuses solely on NPE in attendance queries. Remove out-of-scope changes related to Member creation and AppleAuthService. Keep only the attendance 'part' field nullability changes related to fixing the NPE issue.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: part null safe' clearly and specifically describes the main change: making the 'part' field null-safe throughout the codebase.
Linked Issues check ✅ Passed The PR addresses issue #419 (NullPointerException in sessions attendance query) by making the 'part' field nullable across all attendance-related models and repositories, preventing NPE when the field is absent.

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

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch hotfix/#419
📝 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.

@BlackBean99 BlackBean99 merged commit 8f9ebec into develop Mar 14, 2026
1 of 2 checks passed
@BlackBean99 BlackBean99 deleted the hotfix/#419 branch March 14, 2026 05:48
BlackBean99 added a commit that referenced this pull request Mar 14, 2026
* 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)
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.

sessions 출석 조회 NPE

1 participant