[feature] cloudflare 이미지 업로드 기능 구현#502
Conversation
- 메트릭이 이미 존재한다면 metric.update()를 호출하는지 검증합니다. - 일일 활성 사용자수를 정확히 계산하는지 검증합니다. - MetricFixture를 통해 ClubMetric을 mock객체로 정의하여 수정불가능한 값의 반환값을 직접 정의합니다.
- 일부 Club 정보가 누락되어도 null 포함하여 정상 동작해야 합니다. - 반드시 1개 이상의 동아리를 조회해야 합니다.
- 하루 미만의 사용자수 요청시 빈배열을 반환합니다. - ip 중복을 제거하여 카운트 합니다
[feat] socialLinks 구현
- 하루 미만의 사용자수 요청시 빈배열을 반환합니다. - ip 중복을 제거하여 카운트 합니다
- 같은 동아리에 대해 기존 스케줄이 존재하면 취소합니다.
- 모집 상태 업데이트를 성공하여 repository를 통해 저장합니다. - 존재하지 않는 클럽 id에 대해 업데이트를 요청할시 예외를 발생합니다.
[feature] 구글 드라이브 업로드 기능 구현
…ve' into feature/#382-club-application-save
[feature] 동아리 지원서 관련 기능 구현
[feature] cloudflare 이미지 저장 기능 구현
fix: 잘못된 비밀번호 검증 로직과 잘못된 비밀번호 테스트 수정
이미지 저장소 cloudflare로 고정
✅ Deploy Preview for moadong ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Caution Review failedThe pull request is closed. Walkthrough이 변경사항은 동아리 지원서(Club Application) 기능, 이미지 저장소(Cloudflare, Google Drive, S3) 통합, 모집 일정 상태 자동 갱신, 사용자 정보 구조 개선, 그리고 테스트 환경 분리 및 확장 등 대규모 백엔드 기능 추가 및 리팩토링을 포함합니다. 새로운 엔티티, 서비스, 컨트롤러, 유효성 검사, 예외 코드, 테스트 코드가 다수 도입되었습니다. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant ClubApplyController
participant ClubApplyService
participant ClubQuestionRepository
participant ClubApplicationRepository
User->>ClubApplyController: POST /api/club/{clubId}/application (생성/수정)
ClubApplyController->>ClubApplyService: createClubApplication / editClubApplication
ClubApplyService->>ClubQuestionRepository: findByClubId
alt 존재하지 않으면
ClubApplyService->>ClubQuestionRepository: save (신규 생성)
end
ClubApplyService-->>ClubApplyController: 완료
User->>ClubApplyController: GET /api/club/{clubId}/apply
ClubApplyController->>ClubApplyService: getClubApplication
ClubApplyService->>ClubQuestionRepository: findByClubId
ClubApplyService-->>ClubApplyController: ClubApplicationResponse
User->>ClubApplyController: POST /api/club/{clubId}/apply (지원서 제출)
ClubApplyController->>ClubApplyService: applyToClub
ClubApplyService->>ClubQuestionRepository: findByClubId
ClubApplyService->>ClubApplicationRepository: save (지원서 저장)
ClubApplyService-->>ClubApplyController: 완료
sequenceDiagram
actor System
participant RecruitmentStateChecker
participant ClubRepository
Note over RecruitmentStateChecker: 매 시간마다 스케줄 실행
RecruitmentStateChecker->>ClubRepository: findAll()
loop 각 Club
RecruitmentStateChecker->>Club: 모집시작/종료일, 상태 확인
alt 상태 변화 필요
RecruitmentStateChecker->>Club: 상태 업데이트
RecruitmentStateChecker->>ClubRepository: save(Club)
end
end
sequenceDiagram
actor User
participant ClubImageController
participant ClubImageService (Cloudflare/GoogleDrive)
participant S3/Drive
User->>ClubImageController: POST /logo (로고 업로드)
ClubImageController->>ClubImageService: uploadLogo(clubId, file)
ClubImageService->>S3/Drive: 파일 업로드
S3/Drive-->>ClubImageService: URL 반환
ClubImageService-->>ClubImageController: URL 반환
ClubImageController-->>User: URL 반환
Possibly related PRs
Suggested labels
Suggested reviewers
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (68)
✨ Finishing Touches
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 (
|

#️⃣연관된 이슈
Summary by CodeRabbit
신규 기능
개선 및 변경
버그 수정
테스트
기타