- 
                Notifications
    
You must be signed in to change notification settings  - Fork 0
 
Release v2.0.0 (old) #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR reorganizes admin API endpoints by separating them from public endpoints and restructuring the codebase to improve separation of concerns. The changes involve moving email-related services to the google domain package, creating dedicated admin controllers, and adding a new somkathon participant management system.
- Separation of admin API endpoints with proper access control structure
 - Package reorganization moving email services from 
domain.emailtodomain.google - Addition of somkathon participant management functionality
 
Reviewed Changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description | 
|---|---|
AdminRecruitController.java | 
New admin controller for recruitment management functionality | 
AdminNewsController.java | 
New admin controller for news management operations | 
AdminFileController.java | 
Moved file controller to admin package with updated endpoints | 
AdminApplicantController.java | 
Refactored applicant controller for admin-specific operations | 
SomParticipantController.java | 
New controller for somkathon participant management | 
SomParticipantService.java | 
Service layer for somkathon participant operations | 
SomParticipant.java | 
Entity for somkathon participant data | 
RecruitController.java | 
Removed admin-specific endpoints moved to admin controllers | 
NewsController.java | 
Removed admin operations moved to admin controller | 
EmailService.java | 
Moved from email package to google package | 
MailType.java | 
Moved from email package to google package | 
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| SLOT_NOT_ACTIVE(400, "C027", "해당 슬롯이 비활성화 되었습니다."), | ||
| FILE_ENCODE_FAIL(400, "C028", "파일 인코딩에 실패하였습니다."), | ||
| RECRUITMENT_NOT_ACTIVE(400, "C029", "모집 기간이 아닙니다."), | ||
| NOT_FOUND_PARTICIPANT(400, "C030", "참가자를 찾을 수 없습니다.") | 
    
      
    
      Copilot
AI
    
    
    
      Aug 17, 2025 
    
  
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing semicolon at the end of the line. The enum constant should end with a semicolon.
| return toResponseDto(participant); | ||
| } | ||
| 
               | 
          ||
| public SomParticipantResponseDto updateParticipant(Long id, SomParticipantRequestDto requestDto){ | 
    
      
    
      Copilot
AI
    
    
    
      Aug 17, 2025 
    
  
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The updateParticipant method doesn't validate for duplicate student IDs when updating. If the requestDto contains a studentId that already exists for a different participant, this could create duplicate entries.
| public SomParticipantResponseDto updateParticipant(Long id, SomParticipantRequestDto requestDto){ | |
| public SomParticipantResponseDto updateParticipant(Long id, SomParticipantRequestDto requestDto){ | |
| validateDuplicatedStudentIdOnUpdate(requestDto.getStudentId(), id); | 
| 
               | 
          ||
| public void update(SomParticipantRequestDto requestDto) { | ||
| this.participantName = requestDto.getParticipantName(); | ||
| this.studentId = requestDto.getStudentId(); | 
    
      
    
      Copilot
AI
    
    
    
      Aug 17, 2025 
    
  
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The update method updates all fields including studentId, which might violate the unique constraint. Consider whether studentId should be updatable or add validation.
| this.studentId = requestDto.getStudentId(); | |
| // this.studentId = requestDto.getStudentId(); // Prevent updating studentId to maintain uniqueness | 
| 
           [] 여기 체크 리스트에 [x]이렇게 체크하면 체크표시로 뜹니다유  | 
    
* refactor: Google API 관련 미사용 컨트롤러 삭제, 패키지 통합 * chore: 패키지 참조 변경 * chore: Docs 노출 숨김 처리 * refactor: 어드민용 관리 API 접근 권한 분리
* refactor: 이메일 전송 비동기 처리 (DASOMBE-13) * refactor: 이메일 전송 오류시 로그 저장 DB생성, 이메일 템플릿 분기처리 (DASOMBE-13) * refactor: 이메일 로그 builder 패턴으로 인스턴스 초기화 완료 (DASOMBE-13) * refactor: 성공여부도 저장 가능하게 수정 (DASOMBE-13) * refactor: 빌더 패턴 EmailLog엔티티 안으로 이동, 에러메시지 저장 로직 try-catch문 밖으로 이동 (DASOMBE-13)
* feat: 활동 연혁 엔티티 정의 (DASOMBE-15) * feat: 활동 연혁 리포지토리 인터페이스 정의 (DASOMBE-15) * feat: 활동 연혁 DTO 정의 (DASOMBE-15) * feat: 활동 연혁 서비스 로직 구현 (DASOMBE-15) * feat: 활동 연혁 API 컨트롤러 구현 (DASOMBE-15) * test: 활동 연혁 서비스 단위 테스트 추가 (DASOMBE-15) * chore: 활동 연혁 기능 관련 환경 설정 (DASOMBE-15) * refactor: 엔티티 계층 리팩토링 (DASOMBE-15) * refactor: 리포지토리 계층 리팩토링 (DASOMBE-15) * refactor: DTO 계층 리팩토링 및 분리 (DASOMBE-15) * remove: 사용하지 않는 파일 제거 (DASOMBE-15) * refactor: 서비스 계층 리팩토링 (DASOMBE-15) * refactor: 컨트롤러 계층 리팩토링 (DASOMBE-15) * test: 테스트 코드 수정 (DASOMBE-15) * chore: 환경설정 변경 (DASOMBE-15) * rename: Activity로 변경 (DASOMBE-15)
* feat: 엔티티 파일 생성 * feat: 회장단 생성 DTO * feat: 회장단 레포지토리 생성 * feat: 회장단 서비스 생성 * feat: 임원진 컨트롤러 생성 * rename: 파일 이름 수정 -> 파일 이름 맨앞 대문자 수정 * feat: 임원진 요청 Dto 생성 및 작성 * feat: 임원진 멤버 생성 서비스 기능 추가 * comment: 주석 수정 * feat: 임원진 멤버 생성 컨트롤러 추가 * feat: 임원진 서비스 테스트 파일 추가 * rename: 스키마 이름 수정 * feat: 임원진 응답 Dto 파일 생성 * rename: 코드 수정 * feat: 임원진 수정 요청 DTO * feat: 임원진 조회 ( 이름, 역할, 깃허브 주소 반환 ) 기능 추가 * feat: 임원진 멤버 조회 테스트 코드 추가 * feat: 임원진 멤버 수정 기능 추가 * feat: 임원진 멤버 수정 테스트 추가 * feat: 임원진 멤버 삭제 기능 추가 * feat: 임원진 멤버 삭제 테스트 추가 * rename: 엔드포인트 네이밍 규칙 적용 * rename: 파일이름 오탈자 수정 * feat: enum 파일 추가 * feat: 커스텀 에러 추가 및 예외처리 적용 * feat: ExecutiveService 인터페이스 구현 및 기존 파일 이름 변경 (DASOMBE-14) * feat: 임원진 전체 조회 기능 추가 (DASOMBE-14) * feat: 생성, 수정, 삭제 어드민 권한 추가 (DASOMBE-14) * rename: 오탈자 수정 (DASOMBE-14) * feat: DTO 요청 데이터 수정 (DASOMBE-14) * feat: 조회 실패 테스트 추가 (DASOMBE-14) * feat: 실패 테스트 케이스 추가 ( 삭제, 생성 ) (DASOMBE-14)
* feat: 기수관리를 위한 엔티티, 서비스, 레포지토리 생성 및 대응하는 에러코드 추가 (DASOMBE-16) * test: GenerationService의 테스트 코드 작성 (DASOMBE-16) * refactor: 모집일정에 기수를 의미하는 GENERATION 키 생성 (DASOMBE-16) * refactor: 모집일정의 조회, 수정 부분에 기수 반영 및 테스트코드에 반영하고 기수 조회, 수정 코드 하단에 추가 (DASOMBE-16) * refactor: 멤버 엔티티에 기수 추가 및 회원가입 시 GenerationService의 값을 읽어 자동으로 기수 기입하게 구현 및 테스트 코드에 반영 (DASOMBE-16) * feat: 기수 관리(조회,수정) 을 담당하는 AdminGenerationController 추가 (DASOMBE-16) * fix: ErrorCode 에 리베이스 중 누락된 EXECUTIVE_NOT_FOUND 추가 * refactor: 기수 시스템을 모집일정에 통합시키기 위해 Generation 관련 기능 삭제(DASOMBE-16) * refactor: 기수 시스템을 모집일정에 통합 && 코드 정리 및 통합 * refactor: 기수 시스템을 모집일정에 통합함에 따라 멤버의 기수 코드 수정 후 코드 정리 && 회원가입 시 선택적으로 기수를 입력받고 값이 없을경우, 현재 모집일정의 기수를 기입하게 수정 (DASOMBE-16)
* DASOMBE-18 지원자 학번,이메일 확인후 면접 예약 및 날자 변경 기능(테스트 못해봄.) * DASOMBE-18 면접 지원자 예약 날짜 변경 테스트 * DASOMBE-18 이메일 인증 * DASOMBE-18 <피드백 반영. 추가 설명 표시. 인증코드 템플릿 반영> * [refactor] DASOMBE-18 <에러 코드 명세 추가> * refactor: 면접 예약 날짜 변경 기능 추가(DASOMBE-18) --------- Co-authored-by: DoHoon Yoon <[email protected]> Co-authored-by: hodoon <[email protected]>
Co-authored-by: DoHoon Yoon <[email protected]>
No description provided.