Repository navigation
feat/materials-api - #103
Merged
Merged
Conversation
- 인증 서버 GET /api/v1/auth/materials(계약 C-2) 호출과 응답 DTO - 마이페이지 응답(계약 C-1): MAJOR_ 접두사를 뗀 jobRole, 문서 순서대로 index - 옛 업로드 경로로 올린 PDF는 파일명·쪽수 없는 PORTFOLIO 문서 한 건으로 보여 준다 - 저장(PUT)은 비개발 API 명세(03 §3)를 받은 뒤 붙인다 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
danjee2009
reviewed
Oct 17, 2026
danjee2009
left a comment
Member
There was a problem hiding this comment.
변경된 자료 조회 컨트롤러, 인증 서버 클라이언트와 응답 변환 로직 및 관련 테스트를 검토했습니다. 확인한 범위에서 별도로 지적할 실질적인 문제는 없습니다. PR의 CI에서 전체 테스트 743개가 통과한 것을 확인했으며, 이 리뷰에서는 테스트를 다시 실행하거나 실제 인증 서버와의 통합 검증은 하지 않았습니다.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
마이페이지가 저장된 직무·문서·GitHub·보완 입력을 한 번에 불러오는
GET /api/v1/metaData/materials를 추가합니다(비개발 직군 명세 01-overview §4.1 계약 C-1). 저장(PUT /api/v1/metaData/materials)은 이 PR에 없고 후속 PR로 붙입니다.관련 이슈
별도 연결 이슈 없음. 비개발 직군 구현 명세 01-overview §4.1(C-1)·§4.2(C-2)를 기준으로 했습니다. 인증 서버 쪽 엔드포인트는 Alpha-origin/Repit-auth-server#34입니다.
Task
AuthServerApi·AuthServerClient.getMaterials(): 인증 서버GET /api/v1/auth/materials(C-2)를 사용자 토큰으로 호출. GET이라 기존 규칙대로 5xx·연결 실패는 재시도AuthMaterialsResponse: 인증 서버 응답(major,documents,gitUrls,supplements,legacyPortfolio)MaterialsResponse: 마이페이지 응답(C-1)jobRole:MAJOR_접두사를 뗀 직무 코드(UserJobMajors.normalize), 미선택이면nulldocuments[]: 문서 순서대로index(0부터)를 붙임dataUpload)로 올린 PDF만 있는 사용자는{"index": 0, "type": "PORTFOLIO", "fileUrl": …, "fileName": null, "pageCount": null}한 건jobRole: null과 빈 목록MetaDataController에GET /api/v1/metaData/materials. 01-overview §4.1의 JSON 모양 그대로 돌려줌(기존getMetaData처럼ApiResponse로 감싸지 않음)응답 예:
{ "jobRole": "QA_ENGINEER", "documents": [{"index": 0, "type": "TEST_PLAN", "fileUrl": "https://.../a1b2.pdf", "fileName": "결제-테스트계획.pdf", "pageCount": 12}], "gitUrls": ["https://github.com/owner/repo"], "supplements": [] }검증
MaterialsResponseTest5개: 새 형식 변환(접두사·index·보완 입력), 옛 사용자 PORTFOLIO 한 건, 저장 없음, 빈 PDF 주소, 빈 응답MetaDataControllerTest1개: 사용자 토큰으로 받아 그대로 반환AuthServerMaterialsWiringTest1개: 설정으로 만든 실제 HTTP 클라이언트가 가짜 인증 서버에 토큰을 넘기고, C-2 JSON(message·null 필드 포함)을 읽는지 확인./gradlew test: 전체 743개 통과, 실패·오류·건너뜀 0개git diff --check통과PUT→GET로컬 확인 결과는 fix: fix question tailor #34 본문에 있습니다후속 (이 PR 범위 밖)
PUT /api/v1/metaData/materials: 422 사유별 판정 기준, 분석 재료 변경 판정(analysis: null), 옛 업로드 경로 연결이 비개발 API 명세(03 §3)에 있습니다. 그 명세를 받은 뒤 별도 PR로 붙입니다getMaterials연결은 Web 단계(06 §3.5)에서 합니다. 그 전까지 Web은 지금처럼getMetaData를 씁니다ETC
jobRole이 9개 코드 중 하나인지는 여기서 다시 검사하지 않습니다. 인증 서버가 enum으로 막고 있고, 직무 명세 상수는 03 §2의 모양을 받은 뒤 맞춥니다getMetaData로 대체하는 처리는 넣지 않았습니다. #34를 먼저 병합해 주세요dataUpload,getMetaData,isGit,isPortfolio)는 바꾸지 않았습니다main병합 시deploy.yml이 배포를 실행합니다🤖 Generated with Claude Code