Conversation
📝 WalkthroughWalkthrough키워드 분석 결과를 재첨삭 완료 시 삭제하지 않고 유지하도록 관련 문서(API, Decision, ERD, 요구사항, 상태)를 갱신했다. Changes정책 문서 갱신
키워드 분석 시작 API 구현
Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
Backend CI Report
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
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
`@src/main/java/com/daon/rewrite/keywordanalysis/controller/KeywordAnalysisController.java`:
- Around line 12-30: The KeywordAnalysisController endpoint is missing OpenAPI
documentation, so add the same annotation pattern used by other controller
classes. Update startKeywordAnalysis in KeywordAnalysisController with
`@Operation` and the appropriate `@ApiResponse` entries to document the real
behavior of the POST /cover-letters/{coverLetterId}/keyword-analysis flow,
including success plus expected error cases like 404 and 409. Make sure the
documented request/response DTOs and status codes match what
keywordAnalysisService.startMyKeywordAnalysis actually returns and throws, and
follow the existing controller OpenAPI style in the project.
🪄 Autofix (Beta)
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: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 26c1e0a3-4503-4f68-9bb5-7253af999bb8
📒 Files selected for processing (22)
docs/api/README.mddocs/api/common.mddocs/api/keyword-analysis.mddocs/api/review-versions.mddocs/decisions/README.mddocs/decisions/keyword-analysis.mddocs/erd.mddocs/requirements.mddocs/status.mdsrc/main/java/com/daon/rewrite/keywordanalysis/controller/KeywordAnalysisController.javasrc/main/java/com/daon/rewrite/keywordanalysis/dto/StartKeywordAnalysisRequest.javasrc/main/java/com/daon/rewrite/keywordanalysis/dto/StartKeywordAnalysisResponse.javasrc/main/java/com/daon/rewrite/keywordanalysis/entity/KeywordAnalysis.javasrc/main/java/com/daon/rewrite/keywordanalysis/entity/KeywordAnalysisStatus.javasrc/main/java/com/daon/rewrite/keywordanalysis/repository/KeywordAnalysisRepository.javasrc/main/java/com/daon/rewrite/keywordanalysis/service/KeywordAnalysisService.javasrc/main/java/com/daon/rewrite/keywordanalysis/service/StartKeywordAnalysisResult.javasrc/main/java/com/daon/rewrite/llmjob/entity/LlmJob.javasrc/test/java/com/daon/rewrite/keywordanalysis/controller/KeywordAnalysisControllerTest.javasrc/test/java/com/daon/rewrite/keywordanalysis/repository/KeywordAnalysisRepositoryTest.javasrc/test/java/com/daon/rewrite/keywordanalysis/service/KeywordAnalysisServiceTest.javasrc/test/java/com/daon/rewrite/llmjob/repository/LlmJobRepositoryTest.java
작업 내용
POST /cover-letters/{coverLetterId}/keyword-analysis키워드 분석 시작/재분석 API를 추가했습니다.keywordanalysis기능 패키지를 추가하고KeywordAnalysispersistence, repository, service, controller, DTO를 구현했습니다.KeywordAnalysis(PROCESSING)와LlmJob(KEYWORD_ANALYSIS, PENDING)을 생성합니다.KeywordAnalysis가 있으면 새 리소스를 만들지 않고 같은 id를 재사용해PROCESSING으로 전환합니다.sourceReviewVersionId가 없으면CoverLetter.latestReviewVersionId를 기준으로 분석을 시작합니다.REVIEWED가 아닌 자기소개서, 다른 자기소개서의 첨삭 버전은 거부합니다.LLM_JOB_ALREADY_RUNNING을 반환합니다.관련 이슈
문서 반영
docs/api/README.mddocs/api/common.mddocs/api/keyword-analysis.mddocs/api/review-versions.mddocs/decisions/README.mddocs/decisions/keyword-analysis.mddocs/erd.mddocs/requirements.mddocs/status.md확인 결과
./gradlew test./gradlew checkgit diff --checkSummary by CodeRabbit
New Features
Bug Fixes
Documentation