diff --git a/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantService.java b/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantService.java index 62b1b02..8dbfcc4 100644 --- a/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantService.java +++ b/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantService.java @@ -4,7 +4,7 @@ import dmu.dasom.api.domain.applicant.dto.ApplicantDetailsResponseDto; import dmu.dasom.api.domain.applicant.dto.ApplicantResponseDto; import dmu.dasom.api.domain.applicant.dto.ApplicantStatusUpdateRequestDto; -import dmu.dasom.api.domain.email.enums.MailType; +import dmu.dasom.api.domain.google.enums.MailType; import dmu.dasom.api.domain.recruit.dto.ResultCheckRequestDto; import dmu.dasom.api.domain.recruit.dto.ResultCheckResponseDto; import dmu.dasom.api.global.dto.PageResponse; diff --git a/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantServiceImpl.java b/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantServiceImpl.java index b0e274b..547ea2b 100644 --- a/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantServiceImpl.java +++ b/src/main/java/dmu/dasom/api/domain/applicant/service/ApplicantServiceImpl.java @@ -9,8 +9,8 @@ import dmu.dasom.api.domain.applicant.repository.ApplicantRepository; import dmu.dasom.api.domain.common.exception.CustomException; import dmu.dasom.api.domain.common.exception.ErrorCode; -import dmu.dasom.api.domain.email.enums.MailType; -import dmu.dasom.api.domain.email.service.EmailService; +import dmu.dasom.api.domain.google.enums.MailType; +import dmu.dasom.api.domain.google.service.EmailService; import dmu.dasom.api.domain.google.service.GoogleApiService; import dmu.dasom.api.domain.recruit.dto.ResultCheckRequestDto; import dmu.dasom.api.domain.recruit.dto.ResultCheckResponseDto; diff --git a/src/main/java/dmu/dasom/api/domain/common/exception/CustomErrorController.java b/src/main/java/dmu/dasom/api/domain/common/exception/CustomErrorController.java index dee586f..62d73af 100644 --- a/src/main/java/dmu/dasom/api/domain/common/exception/CustomErrorController.java +++ b/src/main/java/dmu/dasom/api/domain/common/exception/CustomErrorController.java @@ -1,5 +1,6 @@ package dmu.dasom.api.domain.common.exception; +import io.swagger.v3.oas.annotations.Hidden; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.http.HttpServletRequest; import org.springframework.boot.web.servlet.error.ErrorController; @@ -8,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +@Hidden @RestController public class CustomErrorController implements ErrorController { diff --git a/src/main/java/dmu/dasom/api/domain/google/controller/GoogleController.java b/src/main/java/dmu/dasom/api/domain/google/controller/GoogleController.java deleted file mode 100644 index 984ed66..0000000 --- a/src/main/java/dmu/dasom/api/domain/google/controller/GoogleController.java +++ /dev/null @@ -1,38 +0,0 @@ -package dmu.dasom.api.domain.google.controller; - -import dmu.dasom.api.domain.google.service.GoogleApiService; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Collections; -import java.util.List; - -@RestController -@RequestMapping("/google") -@RequiredArgsConstructor -public class GoogleController { - - private final GoogleApiService googleApiService; - @Value("${google.spreadsheet.id}") - private String spreadsheetId; - - private static final String RANGE = "A1"; - - @PostMapping("/write") - public ResponseEntity writeToSheet(@RequestParam String word){ - try{ - List> values = List.of(Collections.singletonList(word)); - - googleApiService.writeToSheet(spreadsheetId, RANGE, values); - return ResponseEntity.ok("Data written successfully to the spreadsheet" + word); - } catch (Exception e){ - e.printStackTrace(); - return ResponseEntity.internalServerError().body("Failed to write data to the spreadsheet" + e.getMessage()); - } - } -} diff --git a/src/main/java/dmu/dasom/api/domain/email/enums/MailType.java b/src/main/java/dmu/dasom/api/domain/google/enums/MailType.java similarity index 69% rename from src/main/java/dmu/dasom/api/domain/email/enums/MailType.java rename to src/main/java/dmu/dasom/api/domain/google/enums/MailType.java index 8a1940c..9ed0ed6 100644 --- a/src/main/java/dmu/dasom/api/domain/email/enums/MailType.java +++ b/src/main/java/dmu/dasom/api/domain/google/enums/MailType.java @@ -1,4 +1,4 @@ -package dmu.dasom.api.domain.email.enums; +package dmu.dasom.api.domain.google.enums; public enum MailType { DOCUMENT_RESULT, // 서류 합격 diff --git a/src/main/java/dmu/dasom/api/domain/email/service/EmailService.java b/src/main/java/dmu/dasom/api/domain/google/service/EmailService.java similarity index 97% rename from src/main/java/dmu/dasom/api/domain/email/service/EmailService.java rename to src/main/java/dmu/dasom/api/domain/google/service/EmailService.java index 2dc9acf..5bc0cb4 100644 --- a/src/main/java/dmu/dasom/api/domain/email/service/EmailService.java +++ b/src/main/java/dmu/dasom/api/domain/google/service/EmailService.java @@ -1,8 +1,8 @@ -package dmu.dasom.api.domain.email.service; +package dmu.dasom.api.domain.google.service; import dmu.dasom.api.domain.common.exception.CustomException; import dmu.dasom.api.domain.common.exception.ErrorCode; -import dmu.dasom.api.domain.email.enums.MailType; +import dmu.dasom.api.domain.google.enums.MailType; import jakarta.mail.MessagingException; import jakarta.mail.internet.MimeMessage; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/dmu/dasom/api/domain/google/service/GoogleApiService.java b/src/main/java/dmu/dasom/api/domain/google/service/GoogleApiService.java index 9217622..fff27b3 100644 --- a/src/main/java/dmu/dasom/api/domain/google/service/GoogleApiService.java +++ b/src/main/java/dmu/dasom/api/domain/google/service/GoogleApiService.java @@ -64,21 +64,6 @@ private Sheets getSheetsService() throws IOException, GeneralSecurityException { return sheetsService; } - public void writeToSheet(String spreadsheetId, String range, List> values) { - try { - Sheets service = getSheetsService(); - ValueRange body = new ValueRange().setValues(values); - service.spreadsheets() - .values() - .update(spreadsheetId, range, body) - .setValueInputOption("USER_ENTERED") - .execute(); - } catch (IOException | GeneralSecurityException e) { - log.error("시트에 데이터를 쓰는 데 실패했습니다."); - throw new CustomException(ErrorCode.WRITE_FAIL); - } - } - public void appendToSheet(List applicants) { processSheetsUpdate(applicants, true); } diff --git a/src/main/java/dmu/dasom/api/domain/member/controller/MemberController.java b/src/main/java/dmu/dasom/api/domain/member/controller/MemberController.java index ee4fcc9..f0632da 100644 --- a/src/main/java/dmu/dasom/api/domain/member/controller/MemberController.java +++ b/src/main/java/dmu/dasom/api/domain/member/controller/MemberController.java @@ -11,6 +11,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpHeaders; @@ -21,6 +22,7 @@ @RestController @RequestMapping("/api") @RequiredArgsConstructor +@Tag(name = "Member API", description = "회원 관리 API") public class MemberController { private final MemberService memberService; diff --git a/src/main/java/dmu/dasom/api/domain/news/controller/NewsController.java b/src/main/java/dmu/dasom/api/domain/news/controller/NewsController.java index f3658fc..592dcd7 100644 --- a/src/main/java/dmu/dasom/api/domain/news/controller/NewsController.java +++ b/src/main/java/dmu/dasom/api/domain/news/controller/NewsController.java @@ -12,7 +12,7 @@ import jakarta.validation.Valid; import java.util.List; -@Tag(name = "NEWS API", description = "뉴스 API") +@Tag(name = "News API", description = "뉴스 API") @RestController @RequiredArgsConstructor @RequestMapping("/api/news") @@ -32,24 +32,4 @@ public ResponseEntity getNewsById(@PathVariable @Min(1) Long id return ResponseEntity.ok(newsService.getNewsById(id)); } - @Operation(summary = "뉴스 등록") - @PostMapping - public ResponseEntity createNews(@Valid @RequestBody NewsRequestDto requestDto) { - return ResponseEntity.status(201).body(newsService.createNews(requestDto)); - } - - @Operation(summary = "뉴스 수정") - @PutMapping("/{id}") - public ResponseEntity updateNews(@PathVariable @Min(1) Long id, - @Valid @RequestBody NewsUpdateRequestDto requestDto) { - return ResponseEntity.ok(newsService.updateNews(id, requestDto)); - } - - @Operation(summary = "뉴스 삭제") - @DeleteMapping("/{id}") - public ResponseEntity deleteNews(@PathVariable Long id) { - newsService.deleteNews(id); - return ResponseEntity.ok().build(); - } - } diff --git a/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java b/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java index fc4bbeb..f08f00c 100644 --- a/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java +++ b/src/main/java/dmu/dasom/api/domain/recruit/controller/RecruitController.java @@ -15,6 +15,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -27,6 +28,7 @@ @RestController @RequestMapping("/api/recruit") @RequiredArgsConstructor +@Tag(name = "Recruit API", description = "부원 모집 API") public class RecruitController { private final ApplicantService applicantService; @@ -84,20 +86,6 @@ public ResponseEntity checkResult(@ModelAttribute final return ResponseEntity.ok(applicantService.checkResult(request)); } - // 면접 일정 생성 - @Operation(summary = "면접 일정 생성", description = "새로운 면접 일정을 생성합니다.") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "면접 일정 생성 성공"), - @ApiResponse(responseCode = "400", description = "잘못된 요청 데이터") - }) - @PostMapping("/interview/schedule") - public ResponseEntity> createInterviewSlots(@Valid @RequestBody InterviewSlotCreateRequestDto request) { - - List slots = - interviewService.createInterviewSlots(request.getStartDate(), request.getEndDate(), request.getStartTime(), request.getEndTime()); - return ResponseEntity.ok(slots); - } - // 면접 예약 @Operation(summary = "면접 예약", description = "지원자가 특정 면접 슬롯을 예약합니다.") @ApiResponses(value = { @@ -128,10 +116,4 @@ public ResponseEntity> getAllInterviewSlots() { return ResponseEntity.ok(allSlots); } - @GetMapping("/interview/applicants") - public ResponseEntity> getAllInterviewApplicants() { - List applicants = interviewService.getAllInterviewApplicants(); - return ResponseEntity.ok(applicants); - } - } diff --git a/src/main/java/dmu/dasom/api/global/admin/controller/AdminController.java b/src/main/java/dmu/dasom/api/global/admin/controller/AdminApplicantController.java similarity index 76% rename from src/main/java/dmu/dasom/api/global/admin/controller/AdminController.java rename to src/main/java/dmu/dasom/api/global/admin/controller/AdminApplicantController.java index 659d570..0abad72 100644 --- a/src/main/java/dmu/dasom/api/global/admin/controller/AdminController.java +++ b/src/main/java/dmu/dasom/api/global/admin/controller/AdminApplicantController.java @@ -4,9 +4,7 @@ import dmu.dasom.api.domain.applicant.dto.ApplicantResponseDto; import dmu.dasom.api.domain.applicant.dto.ApplicantStatusUpdateRequestDto; import dmu.dasom.api.domain.applicant.service.ApplicantService; -import dmu.dasom.api.domain.recruit.dto.RecruitScheduleModifyRequestDto; -import dmu.dasom.api.domain.recruit.service.RecruitService; -import dmu.dasom.api.domain.email.enums.MailType; +import dmu.dasom.api.domain.google.enums.MailType; import dmu.dasom.api.global.dto.PageResponse; import io.swagger.v3.oas.annotations.Operation; @@ -16,6 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import jakarta.validation.constraints.Min; import lombok.RequiredArgsConstructor; @@ -24,12 +23,12 @@ import org.springframework.web.bind.annotation.*; @RestController -@RequestMapping("/api/admin") +@RequestMapping("/api/admin/applicants") @RequiredArgsConstructor -public class AdminController { +@Tag(name = "ADMIN - Applicant API", description = "어드민 지원자 관리 API") +public class AdminApplicantController { private final ApplicantService applicantService; - private final RecruitService recruitService; // 지원자 조회 @Operation(summary = "지원자 전체 조회") @@ -48,7 +47,7 @@ public class AdminController { ) ) }) - @GetMapping("/applicants") + @GetMapping public ResponseEntity> getApplicants( @RequestParam(value = "page", defaultValue = "0") @Min(0) final int page ) { @@ -72,7 +71,7 @@ public ResponseEntity> getApplicants( ) ) }) - @GetMapping("/applicants/{id}") + @GetMapping("/{id}") public ResponseEntity getApplicant(@PathVariable("id") @Min(0) final Long id) { return ResponseEntity.ok(applicantService.getApplicant(id)); } @@ -94,7 +93,7 @@ public ResponseEntity getApplicant(@PathVariable("i ) ) }) - @PatchMapping("/applicants/{id}/status") + @PatchMapping("/{id}/status") public ResponseEntity updateApplicantStatus( @PathVariable("id") @Min(0) final Long id, @Valid @RequestBody final ApplicantStatusUpdateRequestDto request @@ -102,33 +101,6 @@ public ResponseEntity updateApplicantStatus( return ResponseEntity.ok(applicantService.updateApplicantStatus(id, request)); } - // 모집 일정 수정 - @Operation(summary = "모집 일정 수정") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "모집 일정 수정 성공"), - @ApiResponse(responseCode = "400", description = "잘못된 요청", - content = @Content( - mediaType = "application/json", - schema = @Schema(implementation = ErrorResponse.class), - examples = { - @ExampleObject( - name = "날짜 형식 오류", - value = "{ \"code\": \"C016\", \"message\": \"날짜 형식이 올바르지 않습니다.\" }" - ), - @ExampleObject( - name = "시간 형식 오류", - value = "{ \"code\": \"C017\", \"message\": \"시간 형식이 올바르지 않습니다.\" }" - ) - } - ) - ) - }) - @PatchMapping("/recruit/schedule") - public ResponseEntity modifyRecruitSchedule(@Valid @RequestBody final RecruitScheduleModifyRequestDto request) { - recruitService.modifyRecruitSchedule(request); - return ResponseEntity.ok().build(); - } - // 메일 전송 @Operation( summary = "메일 전송", @@ -149,7 +121,7 @@ public ResponseEntity modifyRecruitSchedule(@Valid @RequestBody final Recr ) ) }) - @PostMapping("/applicants/send-email") + @PostMapping("/send-email") public ResponseEntity sendEmailsToApplicants( @RequestParam @Parameter(description = "메일 발송 타입", examples = { diff --git a/src/main/java/dmu/dasom/api/global/file/controller/FileController.java b/src/main/java/dmu/dasom/api/global/admin/controller/AdminFileController.java similarity index 91% rename from src/main/java/dmu/dasom/api/global/file/controller/FileController.java rename to src/main/java/dmu/dasom/api/global/admin/controller/AdminFileController.java index 8fe65bc..8fa6ee7 100644 --- a/src/main/java/dmu/dasom/api/global/file/controller/FileController.java +++ b/src/main/java/dmu/dasom/api/global/admin/controller/AdminFileController.java @@ -1,4 +1,4 @@ -package dmu.dasom.api.global.file.controller; +package dmu.dasom.api.global.admin.controller; import dmu.dasom.api.domain.common.exception.ErrorResponse; import dmu.dasom.api.global.file.dto.FileResponseDto; @@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.constraints.Min; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -18,9 +19,10 @@ import java.util.List; @RestController -@RequestMapping("/api/files") +@RequestMapping("/api/admin/files") @RequiredArgsConstructor -public class FileController { +@Tag(name = "ADMIN - File API", description = "어드민 파일 관리 API") +public class AdminFileController { private final FileService fileService; diff --git a/src/main/java/dmu/dasom/api/global/admin/controller/AdminNewsController.java b/src/main/java/dmu/dasom/api/global/admin/controller/AdminNewsController.java new file mode 100644 index 0000000..8b6b7c2 --- /dev/null +++ b/src/main/java/dmu/dasom/api/global/admin/controller/AdminNewsController.java @@ -0,0 +1,85 @@ +package dmu.dasom.api.global.admin.controller; + +import dmu.dasom.api.domain.common.exception.ErrorResponse; +import dmu.dasom.api.domain.news.dto.NewsCreationResponseDto; +import dmu.dasom.api.domain.news.dto.NewsRequestDto; +import dmu.dasom.api.domain.news.dto.NewsResponseDto; +import dmu.dasom.api.domain.news.dto.NewsUpdateRequestDto; +import dmu.dasom.api.domain.news.service.NewsService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.ExampleObject; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/admin/news") +@RequiredArgsConstructor +@Tag(name = "ADMIN - News API", description = "어드민 소식 관리 API") +public class AdminNewsController { + + private final NewsService newsService; + + @Operation(summary = "뉴스 등록") + @ApiResponses(value = { + @ApiResponse(responseCode = "201", description = "뉴스 등록 성공") + }) + @PostMapping + public ResponseEntity createNews(@Valid @RequestBody NewsRequestDto requestDto) { + return ResponseEntity.status(201) + .body(newsService.createNews(requestDto)); + } + + @Operation(summary = "뉴스 수정") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "뉴스 수정 성공"), + @ApiResponse(responseCode = "404", description = "조회 결과 없음", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ErrorResponse.class), + examples = { + @ExampleObject( + name = "조회 결과 없음", + value = "{ \"code\": \"C010\", \"message\": \"해당 리소스를 찾을 수 없습니다.\" }" + ) + } + )) + }) + @PutMapping("/{id}") + public ResponseEntity updateNews( + @PathVariable @Min(1) Long id, + @Valid @RequestBody NewsUpdateRequestDto requestDto + ) { + return ResponseEntity.ok(newsService.updateNews(id, requestDto)); + } + + @Operation(summary = "뉴스 삭제") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "뉴스 삭제 성공"), + @ApiResponse(responseCode = "404", description = "조회 결과 없음", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ErrorResponse.class), + examples = { + @ExampleObject( + name = "조회 결과 없음", + value = "{ \"code\": \"C010\", \"message\": \"해당 리소스를 찾을 수 없습니다.\" }" + ) + } + )) + }) + @DeleteMapping("/{id}") + public ResponseEntity deleteNews(@PathVariable Long id) { + newsService.deleteNews(id); + return ResponseEntity.ok() + .build(); + } + +} diff --git a/src/main/java/dmu/dasom/api/global/admin/controller/AdminRecruitController.java b/src/main/java/dmu/dasom/api/global/admin/controller/AdminRecruitController.java new file mode 100644 index 0000000..86ac9a0 --- /dev/null +++ b/src/main/java/dmu/dasom/api/global/admin/controller/AdminRecruitController.java @@ -0,0 +1,88 @@ +package dmu.dasom.api.global.admin.controller; + +import dmu.dasom.api.domain.interview.dto.InterviewReservationApplicantResponseDto; +import dmu.dasom.api.domain.interview.dto.InterviewSlotCreateRequestDto; +import dmu.dasom.api.domain.interview.dto.InterviewSlotResponseDto; +import dmu.dasom.api.domain.interview.service.InterviewService; +import dmu.dasom.api.domain.recruit.dto.RecruitScheduleModifyRequestDto; +import dmu.dasom.api.domain.recruit.service.RecruitService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.ExampleObject; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.ErrorResponse; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/admin/recruit") +@RequiredArgsConstructor +@Tag(name = "ADMIN - Recruit API", description = "어드민 모집 관리 API") +public class AdminRecruitController { + + private final RecruitService recruitService; + private final InterviewService interviewService; + + @Operation(summary = "모집 일정 수정") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "모집 일정 수정 성공"), + @ApiResponse(responseCode = "400", description = "잘못된 요청", + content = @Content( + mediaType = "application/json", + schema = @Schema(implementation = ErrorResponse.class), + examples = { + @ExampleObject( + name = "날짜 형식 오류", + value = "{ \"code\": \"C016\", \"message\": \"날짜 형식이 올바르지 않습니다.\" }" + ), + @ExampleObject( + name = "시간 형식 오류", + value = "{ \"code\": \"C017\", \"message\": \"시간 형식이 올바르지 않습니다.\" }" + ) + } + ) + ) + }) + @PatchMapping("/schedule") + public ResponseEntity modifyRecruitSchedule(@Valid @RequestBody final RecruitScheduleModifyRequestDto request) { + recruitService.modifyRecruitSchedule(request); + return ResponseEntity.ok() + .build(); + } + + @Operation(summary = "면접 일정 생성", description = "새로운 면접 일정을 생성합니다.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "면접 일정 생성 성공"), + @ApiResponse(responseCode = "400", description = "잘못된 요청 데이터") + }) + @PostMapping("/interview/schedule") + public ResponseEntity> createInterviewSlots(@Valid @RequestBody InterviewSlotCreateRequestDto request) { + + List slots = + interviewService.createInterviewSlots( + request.getStartDate(), + request.getEndDate(), + request.getStartTime(), + request.getEndTime() + ); + return ResponseEntity.ok(slots); + } + + @Operation(summary = "면접 예약자 조회") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "면접 예약자 조회 성공") + }) + @GetMapping("/interview/applicants") + public ResponseEntity> getAllInterviewApplicants() { + List applicants = interviewService.getAllInterviewApplicants(); + return ResponseEntity.ok(applicants); + } + +} diff --git a/src/test/java/dmu/dasom/api/domain/applicant/ApplicantServiceTest.java b/src/test/java/dmu/dasom/api/domain/applicant/ApplicantServiceTest.java index d50dd1a..b7f3ce4 100644 --- a/src/test/java/dmu/dasom/api/domain/applicant/ApplicantServiceTest.java +++ b/src/test/java/dmu/dasom/api/domain/applicant/ApplicantServiceTest.java @@ -10,8 +10,8 @@ import dmu.dasom.api.domain.applicant.service.ApplicantServiceImpl; import dmu.dasom.api.domain.common.exception.CustomException; import dmu.dasom.api.domain.common.exception.ErrorCode; -import dmu.dasom.api.domain.email.enums.MailType; -import dmu.dasom.api.domain.email.service.EmailService; +import dmu.dasom.api.domain.google.enums.MailType; +import dmu.dasom.api.domain.google.service.EmailService; import dmu.dasom.api.domain.google.service.GoogleApiService; import dmu.dasom.api.domain.recruit.dto.ResultCheckRequestDto; import dmu.dasom.api.domain.recruit.dto.ResultCheckResponseDto; diff --git a/src/test/java/dmu/dasom/api/domain/email/EmailServiceTest.java b/src/test/java/dmu/dasom/api/domain/email/EmailServiceTest.java index 6491bb0..17bddf2 100644 --- a/src/test/java/dmu/dasom/api/domain/email/EmailServiceTest.java +++ b/src/test/java/dmu/dasom/api/domain/email/EmailServiceTest.java @@ -2,8 +2,8 @@ import dmu.dasom.api.domain.common.exception.CustomException; import dmu.dasom.api.domain.common.exception.ErrorCode; -import dmu.dasom.api.domain.email.enums.MailType; -import dmu.dasom.api.domain.email.service.EmailService; +import dmu.dasom.api.domain.google.enums.MailType; +import dmu.dasom.api.domain.google.service.EmailService; import jakarta.mail.MessagingException; import jakarta.mail.internet.MimeMessage; import org.junit.jupiter.api.BeforeEach;