Skip to content

Comments

feat(recruit-member): align answer input types and persist proof file…#300

Merged
CSE-Shaco merged 1 commit intoGDGoCINHA:developfrom
CSE-Shaco:develop
Feb 14, 2026
Merged

feat(recruit-member): align answer input types and persist proof file…#300
CSE-Shaco merged 1 commit intoGDGoCINHA:developfrom
CSE-Shaco:develop

Conversation

@CSE-Shaco
Copy link
Contributor

@CSE-Shaco CSE-Shaco commented Feb 14, 2026

… upload

📌 연관된 이슈

ex) #이슈번호, #이슈번호

✨ 작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요

💬 리뷰 요구사항(선택)

Summary by CodeRabbit

릴리스 노트

  • New Features

    • 지원서 제출 시 파일 업로드 기능 추가
    • 클라우드 저장소 연동으로 증명 자료 관리 개선
  • Improvements

    • 지원 양식 필드 확장 및 구조 최적화
    • 지원자 정보 처리 프로세스 개선

@CSE-Shaco CSE-Shaco merged commit 076814a into GDGoCINHA:develop Feb 14, 2026
1 of 2 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Feb 14, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

모집 멤버 신청 프로세스에 파일 업로드 기능이 추가되었습니다. 컨트롤러에서 MultipartFile 파라미터를 받아 서비스로 전달하고, 서비스에서 파일을 S3에 업로드 후 URL을 신청 답변에 저장합니다. InputType enum이 확장되고 최적화되었으며, 페이로드 처리 로직이 리팩토링되었습니다.

Changes

Cohort / File(s) Summary
파일 업로드 기능 추가
src/main/java/inha/gdgoc/domain/recruit/member/controller/RecruitMemberController.java, src/main/java/inha/gdgoc/domain/recruit/member/service/RecruitMemberService.java
addRecruitMember 메서드 서명에 MultipartFile 파라미터 추가. 컨트롤러에서 파일을 받아 서비스로 전달하고, 서비스에서 S3 업로드 처리 및 URL을 답변에 저장.
InputType Enum 확장 및 최적화
src/main/java/inha/gdgoc/domain/recruit/member/enums/InputType.java
새로운 enum 상수 추가 (INTERESTS, PROOF_FILE, CORE_MOTIVATION, CORE_WISH, CORE_STRENGTHS, CORE_PLEDGE, CORE_FILE_URLS). 레거시 상수 deprecated 처리. LOOKUP 맵 기반 검색 최적화 및 fromQuestion 메서드 개선.
페이로드 처리 로직 리팩토링
src/main/java/inha/gdgoc/domain/recruit/member/service/RecruitMemberService.java
buildMemberFromNumberedPayload와 buildAnswersFromNumberedPayload에서 단계 인덱스 변경 (step6으로 통일). 새로운 필드 처리 추가.

Sequence Diagram

sequenceDiagram
    participant Client
    participant RecruitMemberController
    participant RecruitMemberService
    participant S3Service
    participant Database

    Client->>RecruitMemberController: POST /recruit/member (file + applicationRequest)
    
    alt With File (recruitMemberAddMultipart)
        RecruitMemberController->>RecruitMemberService: addRecruitMember(applicationRequest, file)
    else Without File (recruitMemberAdd)
        RecruitMemberController->>RecruitMemberService: addRecruitMember(applicationRequest, null)
    end
    
    alt File is Present
        RecruitMemberService->>S3Service: uploadProofFile(file)
        S3Service-->>RecruitMemberService: proofFileUrl
        RecruitMemberService->>RecruitMemberService: answers.put("proofFileUrl", url)
    end
    
    RecruitMemberService->>RecruitMemberService: buildMemberFromNumberedPayload(payload)
    RecruitMemberService->>RecruitMemberService: buildAnswersFromNumberedPayload(payload)
    RecruitMemberService->>Database: Save Member & Answers
    Database-->>RecruitMemberService: Success
    RecruitMemberService-->>RecruitMemberController: Complete
    RecruitMemberController-->>Client: Response
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

  • PR #298: RecruitMemberService.addRecruitMember 메서드 시그니처 변경과 관련. 해당 PR에서는 ApplicationRequest를 Map으로 교체하고 페이로드 매핑 헬퍼를 추가했으며, 이번 PR에서는 MultipartFile 파라미터를 추가하여 같은 메서드를 수정합니다.

Poem

🐰 파일을 받아 S3로 쏘고,
enum을 정렬해 빠르게 찾고,
단계를 정리해 깔끔하게,
모집 멤버의 새로운 변신!
당근도 함께 업로드되네! 🥕

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

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.

1 participant