File tree Expand file tree Collapse file tree 4 files changed +42
-1
lines changed
src/main/java/dmu/dasom/api Expand file tree Collapse file tree 4 files changed +42
-1
lines changed Original file line number Diff line number Diff line change 1+ package dmu .dasom .api .domain .applicant .dto ;
2+
3+ import dmu .dasom .api .domain .applicant .enums .ApplicantStatus ;
4+ import io .swagger .v3 .oas .annotations .media .Schema ;
5+ import lombok .Getter ;
6+
7+ @ Getter
8+ @ Schema (name = "ApplicantStatusUpdateRequestDto" , description = "지원자 상태 변경 요청 DTO" )
9+ public class ApplicantStatusUpdateRequestDto {
10+
11+ @ Schema (description = "상태" , example = "DOCUMENT_PASSED" )
12+ private ApplicantStatus status ;
13+
14+ }
Original file line number Diff line number Diff line change 33import dmu .dasom .api .domain .applicant .dto .ApplicantCreateRequestDto ;
44import dmu .dasom .api .domain .applicant .dto .ApplicantDetailsResponseDto ;
55import dmu .dasom .api .domain .applicant .dto .ApplicantResponseDto ;
6+ import dmu .dasom .api .domain .applicant .dto .ApplicantStatusUpdateRequestDto ;
67import dmu .dasom .api .global .dto .PageResponse ;
78
89public interface ApplicantService {
@@ -13,4 +14,6 @@ public interface ApplicantService {
1314
1415 ApplicantDetailsResponseDto getApplicant (final Long id );
1516
17+ ApplicantDetailsResponseDto updateApplicantStatus (final Long id , final ApplicantStatusUpdateRequestDto request );
18+
1619}
Original file line number Diff line number Diff line change 33import dmu .dasom .api .domain .applicant .dto .ApplicantCreateRequestDto ;
44import dmu .dasom .api .domain .applicant .dto .ApplicantDetailsResponseDto ;
55import dmu .dasom .api .domain .applicant .dto .ApplicantResponseDto ;
6+ import dmu .dasom .api .domain .applicant .dto .ApplicantStatusUpdateRequestDto ;
67import dmu .dasom .api .domain .applicant .entity .Applicant ;
78import dmu .dasom .api .domain .applicant .repository .ApplicantRepository ;
89import dmu .dasom .api .domain .common .exception .CustomException ;
@@ -42,8 +43,21 @@ public PageResponse<ApplicantResponseDto> getApplicants(final int page) {
4243 // 지원자 상세 조회
4344 @ Override
4445 public ApplicantDetailsResponseDto getApplicant (final Long id ) {
46+ return findById (id ).toApplicantDetailsResponse ();
47+ }
48+
49+ // 지원자 상태 변경
50+ @ Override
51+ public ApplicantDetailsResponseDto updateApplicantStatus (final Long id , final ApplicantStatusUpdateRequestDto request ) {
52+ final Applicant applicant = findById (id );
53+ applicant .updateStatus (request .getStatus ());
54+
55+ return applicant .toApplicantDetailsResponse ();
56+ }
57+
58+ // Repository에서 ID로 지원자 조회
59+ private Applicant findById (final Long id ) {
4560 return applicantRepository .findById (id )
46- .map (Applicant ::toApplicantDetailsResponse )
4761 .orElseThrow (() -> new CustomException (ErrorCode .EMPTY_RESULT ));
4862 }
4963
Original file line number Diff line number Diff line change 22
33import dmu .dasom .api .domain .applicant .dto .ApplicantDetailsResponseDto ;
44import dmu .dasom .api .domain .applicant .dto .ApplicantResponseDto ;
5+ import dmu .dasom .api .domain .applicant .dto .ApplicantStatusUpdateRequestDto ;
56import dmu .dasom .api .domain .applicant .service .ApplicantService ;
67import dmu .dasom .api .global .dto .PageResponse ;
78import io .swagger .v3 .oas .annotations .Operation ;
1011import io .swagger .v3 .oas .annotations .media .Schema ;
1112import io .swagger .v3 .oas .annotations .responses .ApiResponse ;
1213import io .swagger .v3 .oas .annotations .responses .ApiResponses ;
14+ import jakarta .validation .Valid ;
1315import jakarta .validation .constraints .Min ;
1416import lombok .RequiredArgsConstructor ;
1517import org .springframework .http .ResponseEntity ;
@@ -69,4 +71,12 @@ public ResponseEntity<ApplicantDetailsResponseDto> getApplicant(@PathVariable("i
6971 return ResponseEntity .ok (applicantService .getApplicant (id ));
7072 }
7173
74+ // 지원자 상태 변경
75+ @ Operation (summary = "지원자 상태 변경" )
76+ @ PatchMapping ("/applicants/{id}/status" )
77+ public ResponseEntity <ApplicantDetailsResponseDto > updateApplicantStatus (@ PathVariable ("id" ) @ Min (0 ) final Long id ,
78+ @ Valid @ RequestBody final ApplicantStatusUpdateRequestDto request ) {
79+ return ResponseEntity .ok (applicantService .updateApplicantStatus (id , request ));
80+ }
81+
7282}
You can’t perform that action at this time.
0 commit comments