[FIX] PDF 페이지 수 누락 버그 수정 및 Home 진입점 정리 - #132
Conversation
PdfValidationResult.Valid가 페이지 수를 갖고 있지 않아 포트폴리오 업로드 시 pageCount가 항상 null로 전송되어 서버 업로드가 실패하던 문제를 해결함.
feature:mypage 검증을 위해 Home 화면에 마이 페이지 진입 버튼을 추가하고, Navigator에 접근할 수 있도록 HomeNavigationModule을 feature:home:impl에서 app 모듈로 이동함.
멀티파트 파트명을 pdf에서 file로 바꾸고, 업로드 요청 디버깅을 위해 로깅 레벨을 BODY로 올림. 에러 코드 매퍼의 카테고리별 KDoc 주석도 함께 정리함.
📝 WalkthroughWalkthroughPDF 검증 결과에 페이지 수를 포함했습니다. Home 화면에 MyPage 이동 버튼과 Navigator 연결을 추가했습니다. 포트폴리오 업로드 multipart 이름과 HTTP 로깅 설정을 변경하고 API 오류 코드 import를 확장했습니다. ChangesPDF 검증 및 페이지 수 전달
Home MyPage 이동
포트폴리오 업로드 네트워크 설정
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant HomeScreen
participant HomeViewModel
participant HomeEntryBuilder
participant Navigator
HomeScreen->>HomeViewModel: OpenMyPage 인텐트 전달
HomeViewModel-->>HomeScreen: GoToMyPageRequested 효과 전달
HomeScreen->>HomeEntryBuilder: onOpenMyPage 콜백 호출
HomeEntryBuilder->>Navigator: goTo(MyPage) 호출
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.kt (1)
18-20: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winMyPage 이동 효과의 이름을 통일하십시오.
공유 원인은 MyPage 이동 효과를
GoToHomeRequested로 명명한 것입니다. 이 이름은 MVI 흐름의 실제 목적지와 다릅니다.
feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.kt#L18-L20:GoToHomeRequested를GoToMyPageRequested로 변경하십시오.feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeViewModel.kt#L14-L18: 변경한 MyPage 효과를 emit하십시오.feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeScreen.kt#L31-L39: 변경한 MyPage 효과를 수집하고onOpenMyPage()를 호출하십시오.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.kt` around lines 18 - 20, MyPage 이동 효과의 이름과 사용처를 실제 목적지에 맞게 통일하십시오. feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.kt 18-20의 HomeEffect에서 GoToHomeRequested를 GoToMyPageRequested로 변경하고, feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeViewModel.kt 14-18에서는 새 효과를 emit하십시오. feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeScreen.kt 31-39에서는 새 효과를 수집해 onOpenMyPage()를 호출하십시오.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@core/common/src/main/kotlin/com/dminus14/app/core/common/pdf/PdfValidationResult.kt`:
- Around line 4-6: Update the upload flow to propagate
PdfValidationResult.Valid.pageCount from validatePdf(...) through
UploadPortfolioUseCase and PortfolioRemoteDataSource into the
uploadPortfolio(...) request, ensuring the server receives the validated page
count.
In
`@data/src/main/kotlin/com/dminus14/app/data/remote/interceptor/OkHttpLoggingInterceptorFactory.kt`:
- Line 14: Update OkHttpLoggingInterceptorFactory.createForUpload() to use
HttpLoggingInterceptor.Level.HEADERS instead of BODY, preventing PDF request and
response bodies from being logged while preserving header logging.
In
`@feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/navigation/HomeEntryBuilder.kt`:
- Around line 6-12: Move MyPage destination mapping from Home to app: in
feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/navigation/HomeEntryBuilder.kt:6-12,
remove the MyPage import and goTo parameter, and expose HomeScreen’s
onOpenMyPage callback directly; in feature/home/impl/build.gradle.kts:11, remove
the api(project(":feature:mypage:api")) dependency; in
app/src/main/java/com/dminus14/app/navigation/di/HomeNavigationModule.kt:17-19,
import MyPage and pass homeEntryBuilder’s callback as navigator.goTo(MyPage).
---
Nitpick comments:
In
`@feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.kt`:
- Around line 18-20: MyPage 이동 효과의 이름과 사용처를 실제 목적지에 맞게 통일하십시오.
feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.kt
18-20의 HomeEffect에서 GoToHomeRequested를 GoToMyPageRequested로 변경하고,
feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeViewModel.kt
14-18에서는 새 효과를 emit하십시오.
feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeScreen.kt
31-39에서는 새 효과를 수집해 onOpenMyPage()를 호출하십시오.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 8efec229-6cce-47ab-a254-e115cc42db07
📒 Files selected for processing (13)
app/src/main/java/com/dminus14/app/navigation/di/HomeNavigationModule.ktcore/common/src/androidTest/kotlin/com/dminus14/app/core/common/pdf/PdfValidationInstrumentedTest.ktcore/common/src/main/kotlin/com/dminus14/app/core/common/pdf/PdfValidation.ktcore/common/src/main/kotlin/com/dminus14/app/core/common/pdf/PdfValidationResult.ktcore/common/src/test/kotlin/com/dminus14/app/core/common/pdf/PdfValidationRulesTest.ktdata/src/main/kotlin/com/dminus14/app/data/remote/config/PortfolioNetworkConfig.ktdata/src/main/kotlin/com/dminus14/app/data/remote/interceptor/OkHttpLoggingInterceptorFactory.ktdata/src/main/kotlin/com/dminus14/app/data/remote/mapper/ApiErrorCode.ktfeature/home/impl/build.gradle.ktsfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.ktfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeScreen.ktfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeViewModel.ktfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/navigation/HomeEntryBuilder.kt
Catalog Preview상태: 🗑️ Preview 제거됨 대상: PR #132 실행: GitHub Actions |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@data/src/main/kotlin/com/dminus14/app/data/remote/interceptor/OkHttpLoggingInterceptorFactory.kt`:
- Around line 10-26: Update createForUpload() so it no longer delegates to
createInterceptor(logger) and always uses HEADERS logging, preventing BODY logs
for authentication requests even when HTTP_LOGGING_BODY is enabled. Preserve
createInterceptor()’s existing behavior for other clients, and update
OkHttpLoggingInterceptorFactoryTest.kt to enforce the separate logging-level
contract.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: ff9eb36e-7319-47f2-b761-93dbda598155
📒 Files selected for processing (7)
app/src/main/java/com/dminus14/app/navigation/di/HomeNavigationModule.ktdata/build.gradle.ktsdata/src/main/kotlin/com/dminus14/app/data/remote/interceptor/OkHttpLoggingInterceptorFactory.ktfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeContract.ktfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeScreen.ktfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeViewModel.ktfeature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/navigation/HomeEntryBuilder.kt
🚧 Files skipped from review as they are similar to previous changes (3)
- feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/navigation/HomeEntryBuilder.kt
- app/src/main/java/com/dminus14/app/navigation/di/HomeNavigationModule.kt
- feature/home/impl/src/main/kotlin/com/dminus14/app/feature/home/HomeScreen.kt
🚩 연관 이슈
closed #130
📝 작업 내용
마이 페이지(#126) 작업 중 함께 처리한 간접적인 변경 사항.
PdfRenderer.pageCount)를PdfValidationResult.Valid가 담아 반환하지 않아, 포트폴리오 업로드 API 호출 시pageCount가 항상null로 전송되어 서버 업로드가 실패하던 버그 수정feature:mypage개발·검증을 위해 Home 화면에 마이 페이지 진입 버튼을 추가하고, 이를 위해HomeNavigationModule을feature:home:impl에서app모듈로 이동pdf→file로 수정하고, 업로드 요청 디버깅을 위해 로깅 레벨을 BODY로 조정ApiErrorCode에 대한 카테고리별 KDoc 주석 정리🏞️ 스크린샷 (선택)
🗣️ 리뷰 요구사항 (선택)
feature:mypage연동 검증을 위한 임시 진입점임.Summary by CodeRabbit
새 기능
버그 수정