Conversation
WalkthroughEmotionService와 UserService의 API 엔드포인트가 변경되었으며, MyPageViewModel에서는 유저 프로필 정보를 동적으로 불러오도록 로직이 수정되었습니다. 각 서비스의 Retrofit 어노테이션 및 파라미터 처리 방식도 이에 맞게 조정되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
participant ViewModel as MyPageViewModel
participant UseCase as FetchUserProfileUseCase
participant Service as UserService
ViewModel->>UseCase: fetchUserProfileUseCase()
UseCase->>Service: fetchUserProfile()
Service-->>UseCase: UserProfileResponse
UseCase-->>ViewModel: Result(UserProfile)
ViewModel->>ViewModel: sendIntent(LoadMyPageSuccess)
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Assessment against linked issues
Poem
✨ Finishing Touches
🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. 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 using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
data/src/main/java/com/threegap/bitnagil/data/emotion/service/EmotionService.kt(2 hunks)data/src/main/java/com/threegap/bitnagil/data/user/service/UserService.kt(1 hunks)presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/MyPageViewModel.kt(3 hunks)
🧰 Additional context used
🧠 Learnings (1)
presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/MyPageViewModel.kt (3)
Learnt from: l5x5l
PR: #41
File: presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/model/MyPageIntent.kt:6-6
Timestamp: 2025-07-23T13:32:26.263Z
Learning: In the Bitnagil Android project's MVI architecture, Intent classes like LoadMyPageSuccess are named to represent successful API response results that carry loaded data, not just user actions. This naming convention is used for future API integration where the intent will be triggered when my page data loading succeeds from the server.
Learnt from: l5x5l
PR: #41
File: presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/model/MyPageState.kt:6-14
Timestamp: 2025-07-23T13:31:46.809Z
Learning: In the Bitnagil Android project, MviState interface extends Parcelable, so any class implementing MviState automatically implements Parcelable. Therefore, @parcelize annotation works correctly without explicitly adding Parcelable implementation.
Learnt from: l5x5l
PR: #41
File: presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/model/MyPageState.kt:6-14
Timestamp: 2025-07-23T13:31:46.809Z
Learning: In the Bitnagil Android project, MviState interface extends Parcelable, so any class implementing MviState automatically implements Parcelable. Therefore, @parcelize annotation works correctly without explicitly adding Parcelable implementation.
🧬 Code Graph Analysis (1)
presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/MyPageViewModel.kt (1)
presentation/src/main/java/com/threegap/bitnagil/presentation/common/mviviewmodel/MviViewModel.kt (1)
sendIntent(30-37)
🔇 Additional comments (5)
data/src/main/java/com/threegap/bitnagil/data/user/service/UserService.kt (1)
8-8: API 엔드포인트 변경이 적절합니다.
/api/v1/users/nickname에서/api/v1/users/infos로 변경된 것이 함수명fetchUserProfile과 더 일관성 있고 의미적으로 명확합니다. 전체 사용자 프로필 정보를 가져온다는 의도가 잘 드러납니다.presentation/src/main/java/com/threegap/bitnagil/presentation/mypage/MyPageViewModel.kt (2)
5-5: API 연동을 위한 UseCase 의존성 추가가 적절합니다.하드코딩된 값에서 실제 API 호출로 변경하기 위한
FetchUserProfileUseCase의존성 추가가 올바른 접근입니다.
18-18: UseCase 의존성 주입이 올바르게 구현되었습니다.생성자를 통한 의존성 주입이 깔끔하게 구현되었습니다.
data/src/main/java/com/threegap/bitnagil/data/emotion/service/EmotionService.kt (2)
11-11: 필요한 import 추가가 적절합니다.
@Path어노테이션 사용을 위한 import 추가가 올바릅니다.
22-25: getMyEmotionMarble API 경로 파라미터 변경에 따른 호환성 확인 완료
getMyEmotionMarble(currentDate: String)호출부를 모두 점검한 결과, 경로 파라미터(@Path("searchDate"))로의 변경이 기존 호출 방식에 영향을 주지 않으므로 추가 수정이 필요 없습니다.확인된 호출부:
- data/src/main/java/com/threegap/bitnagil/data/emotion/repositoryImpl/EmotionRepositoryImpl.kt
- data/src/main/java/com/threegap/bitnagil/data/emotion/datasourceImpl/EmotionDataSourceImpl.kt
- data/src/main/java/com/threegap/bitnagil/data/emotion/service/EmotionService.kt
- data/src/main/java/com/threegap/bitnagil/data/emotion/datasource/EmotionDataSource.kt
- domain/src/main/java/com/threegap/bitnagil/domain/emotion/repository/EmotionRepository.kt
- domain/src/main/java/com/threegap/bitnagil/domain/emotion/usecase/GetMyEmotionUseCase.kt
[ PR Content ]
마이페이지 화면 유저 프로필 API를 연동했습니다.
추가로 변경사항이 있는 API 엔드포인트(유저프로필, 감정구슬)를 수정했습니다.
Related issue
Screenshot 📸
Work Description
To Reviewers 📢
Summary by CodeRabbit
신규 기능
버그 수정