Skip to content

Conversation

@hodoon
Copy link
Collaborator

@hodoon hodoon commented Aug 17, 2025

No description provided.

@hodoon hodoon requested review from Copilot, dohy-eon and ysw789 and removed request for Copilot and dohy-eon August 17, 2025 12:12
Copy link

Copilot AI left a 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.email to domain.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", "참가자를 찾을 수 없습니다.")
Copy link

Copilot AI Aug 17, 2025

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.

Copilot uses AI. Check for mistakes.
return toResponseDto(participant);
}

public SomParticipantResponseDto updateParticipant(Long id, SomParticipantRequestDto requestDto){
Copy link

Copilot AI Aug 17, 2025

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.

Suggested change
public SomParticipantResponseDto updateParticipant(Long id, SomParticipantRequestDto requestDto){
public SomParticipantResponseDto updateParticipant(Long id, SomParticipantRequestDto requestDto){
validateDuplicatedStudentIdOnUpdate(requestDto.getStudentId(), id);

Copilot uses AI. Check for mistakes.

public void update(SomParticipantRequestDto requestDto) {
this.participantName = requestDto.getParticipantName();
this.studentId = requestDto.getStudentId();
Copy link

Copilot AI Aug 17, 2025

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.

Suggested change
this.studentId = requestDto.getStudentId();
// this.studentId = requestDto.getStudentId(); // Prevent updating studentId to maintain uniqueness

Copilot uses AI. Check for mistakes.
@dohy-eon
Copy link
Member

[] 여기 체크 리스트에 [x]이렇게 체크하면 체크표시로 뜹니다유

@ysw789 ysw789 changed the title Release v1.0.4 Release v2 Aug 27, 2025
@ysw789 ysw789 changed the title Release v2 Release v2.0.0 Aug 27, 2025
ysw789 and others added 9 commits August 30, 2025 21:24
* 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]>
@ysw789 ysw789 merged commit a73e7fc into main Aug 30, 2025
1 check passed
@ysw789 ysw789 changed the title Release v2.0.0 Release v2.0.0 (old) Aug 30, 2025
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.

8 participants