From 998cde6062f0323a2f81edb225ef0e7ae7daf53e Mon Sep 17 00:00:00 2001 From: Jeonghyun Lee Date: Thu, 31 Aug 2023 12:26:41 +0900 Subject: [PATCH] =?UTF-8?q?[refactor]=20=EC=A4=91=EB=B3=B5=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=ED=95=A9=EC=B9=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recruitment/RecruitmentController.java | 22 +++--- .../recruitment/domain/Recruitment.java | 30 ++++---- .../recruitment/dto/RecruitmentDTO.java | 72 +++++++++++++++++++ ...tResponse.java => UserRecruitmentDTO.java} | 37 ++++++++-- .../dto/request/UpdateRecruitmentRequest.java | 22 ------ .../dto/response/OpenChatUrlResponse.java | 16 ----- .../service/RecruitmentService.java | 17 +++-- 7 files changed, 137 insertions(+), 79 deletions(-) create mode 100644 src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java rename src/main/java/ceos/backend/domain/recruitment/dto/{response/GetRecruitmentResponse.java => UserRecruitmentDTO.java} (53%) delete mode 100644 src/main/java/ceos/backend/domain/recruitment/dto/request/UpdateRecruitmentRequest.java delete mode 100644 src/main/java/ceos/backend/domain/recruitment/dto/response/OpenChatUrlResponse.java diff --git a/src/main/java/ceos/backend/domain/recruitment/RecruitmentController.java b/src/main/java/ceos/backend/domain/recruitment/RecruitmentController.java index 3cce3e40..3ae2fc40 100644 --- a/src/main/java/ceos/backend/domain/recruitment/RecruitmentController.java +++ b/src/main/java/ceos/backend/domain/recruitment/RecruitmentController.java @@ -1,9 +1,8 @@ package ceos.backend.domain.recruitment; -import ceos.backend.domain.recruitment.dto.request.UpdateRecruitmentRequest; -import ceos.backend.domain.recruitment.dto.response.GetRecruitmentResponse; -import ceos.backend.domain.recruitment.dto.response.OpenChatUrlResponse; +import ceos.backend.domain.recruitment.dto.RecruitmentDTO; +import ceos.backend.domain.recruitment.dto.UserRecruitmentDTO; import ceos.backend.domain.recruitment.service.RecruitmentService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -21,25 +20,24 @@ public class RecruitmentController { private final RecruitmentService recruitmentService; - @Operation(summary = "리크루팅 정보 보기") - @GetMapping - public GetRecruitmentResponse getRecruitment() { + @Operation(summary = "모든 리크루팅 정보 보기 (오픈채팅 포함)") + @GetMapping("/all") + public RecruitmentDTO getRecruitment() { log.info("리크루팅 정보 보기"); return recruitmentService.getRecruitment(); } - @Operation(summary = "오픈채팅 링크") - @GetMapping("/openchat") - public OpenChatUrlResponse getOpenChatUrl() { + @Operation(summary = "리크루팅 정보 보기") + @GetMapping + public UserRecruitmentDTO getOpenChatUrl() { log.info("오픈채팅 링크"); return recruitmentService.getOpenChatUrl(); } @Operation(summary = "리크루팅 정보 수정") @PutMapping - public void updateRecruitment( - @RequestBody @Valid UpdateRecruitmentRequest updateRecruitmentRequest) { + public void updateRecruitment(@RequestBody @Valid RecruitmentDTO recruitmentDTO) { log.info("리크루팅 정보 수정"); - recruitmentService.updateRecruitment(updateRecruitmentRequest); + recruitmentService.updateRecruitment(recruitmentDTO); } } diff --git a/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java b/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java index 969b0573..5149eb29 100644 --- a/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java +++ b/src/main/java/ceos/backend/domain/recruitment/domain/Recruitment.java @@ -3,7 +3,7 @@ import ceos.backend.domain.admin.exception.NotAllowedToModify; import ceos.backend.domain.application.exception.exceptions.WrongGeneration; -import ceos.backend.domain.recruitment.dto.request.UpdateRecruitmentRequest; +import ceos.backend.domain.recruitment.dto.RecruitmentDTO; import ceos.backend.domain.recruitment.exception.*; import ceos.backend.global.common.entity.BaseEntity; import jakarta.persistence.*; @@ -86,20 +86,20 @@ private Recruitment( this.applicationExcelCreatedAt = applicationExcelCreatedAt; } - public void updateRecruitment(UpdateRecruitmentRequest updateRecruitmentRequest) { - this.generation = updateRecruitmentRequest.getGeneration(); - this.prodStudyUrl = updateRecruitmentRequest.getProdStudyUrl(); - this.designStudyUrl = updateRecruitmentRequest.getDesignStudyUrl(); - this.devStudyUrl = updateRecruitmentRequest.getDevStudyUrl(); - this.startDateDoc = updateRecruitmentRequest.getStartDateDoc(); - this.endDateDoc = updateRecruitmentRequest.getEndDateDoc(); - this.resultDateDoc = updateRecruitmentRequest.getResultDateDoc(); - this.startDateInterview = updateRecruitmentRequest.getStartDateInterview(); - this.endDateInterview = updateRecruitmentRequest.getEndDateInterview(); - this.resultDateFinal = updateRecruitmentRequest.getResultDateFinal(); - this.openChatUrl = updateRecruitmentRequest.getOpenChatUrl(); - this.otDate = updateRecruitmentRequest.getOtDate(); - this.demodayDate = updateRecruitmentRequest.getDemodayDate(); + public void updateRecruitment(RecruitmentDTO recruitmentDTO) { + this.generation = recruitmentDTO.getGeneration(); + this.prodStudyUrl = recruitmentDTO.getProdStudyUrl(); + this.designStudyUrl = recruitmentDTO.getDesignStudyUrl(); + this.devStudyUrl = recruitmentDTO.getDevStudyUrl(); + this.startDateDoc = recruitmentDTO.getStartDateDoc(); + this.endDateDoc = recruitmentDTO.getEndDateDoc(); + this.resultDateDoc = recruitmentDTO.getResultDateDoc(); + this.startDateInterview = recruitmentDTO.getStartDateInterview(); + this.endDateInterview = recruitmentDTO.getEndDateInterview(); + this.resultDateFinal = recruitmentDTO.getResultDateFinal(); + this.openChatUrl = recruitmentDTO.getOpenChatUrl(); + this.otDate = recruitmentDTO.getOtDate(); + this.demodayDate = recruitmentDTO.getDemodayDate(); } public void updateApplicationExcelCreatedAt(LocalDateTime createdAt) { diff --git a/src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java b/src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java new file mode 100644 index 00000000..fd73857f --- /dev/null +++ b/src/main/java/ceos/backend/domain/recruitment/dto/RecruitmentDTO.java @@ -0,0 +1,72 @@ +package ceos.backend.domain.recruitment.dto; + + +import ceos.backend.domain.recruitment.domain.Recruitment; +import java.time.LocalDate; +import lombok.Builder; +import lombok.Getter; + +@Getter +public class RecruitmentDTO { + private int generation; + private String prodStudyUrl; + private String designStudyUrl; + private String devStudyUrl; + private LocalDate startDateDoc; + private LocalDate endDateDoc; + private LocalDate resultDateDoc; + private LocalDate startDateInterview; + private LocalDate endDateInterview; + private LocalDate resultDateFinal; + private String openChatUrl; + private LocalDate otDate; + private LocalDate demodayDate; + + @Builder + public RecruitmentDTO( + int generation, + String prodStudyUrl, + String designStudyUrl, + String devStudyUrl, + LocalDate startDateDoc, + LocalDate endDateDoc, + LocalDate resultDateDoc, + LocalDate startDateInterview, + LocalDate endDateInterview, + LocalDate resultDateFinal, + String openChatUrl, + LocalDate otDate, + LocalDate demodayDate) { + this.generation = generation; + this.prodStudyUrl = prodStudyUrl; + this.designStudyUrl = designStudyUrl; + this.devStudyUrl = devStudyUrl; + this.startDateDoc = startDateDoc; + this.endDateDoc = endDateDoc; + this.resultDateDoc = resultDateDoc; + this.startDateInterview = startDateInterview; + this.endDateInterview = endDateInterview; + this.resultDateFinal = resultDateFinal; + this.openChatUrl = openChatUrl; + this.otDate = otDate; + this.demodayDate = demodayDate; + } + + public static RecruitmentDTO from(Recruitment recruitment) { + return RecruitmentDTO.builder() + .generation(recruitment.getGeneration()) + .prodStudyUrl(recruitment.getProdStudyUrl()) + .designStudyUrl(recruitment.getDesignStudyUrl()) + .devStudyUrl(recruitment.getDevStudyUrl()) + .startDateDoc(recruitment.getStartDateDoc()) + .endDateDoc(recruitment.getEndDateDoc()) + .resultDateDoc(recruitment.getResultDateDoc()) + .startDateInterview(recruitment.getStartDateInterview()) + .endDateInterview(recruitment.getEndDateInterview()) + .resultDateFinal(recruitment.getResultDateFinal()) + .openChatUrl(recruitment.getOpenChatUrl()) + .otDate(recruitment.getOtDate()) + .demodayDate(recruitment.getDemodayDate()) + .build(); + } +} diff --git a/src/main/java/ceos/backend/domain/recruitment/dto/response/GetRecruitmentResponse.java b/src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java similarity index 53% rename from src/main/java/ceos/backend/domain/recruitment/dto/response/GetRecruitmentResponse.java rename to src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java index ce1b43f2..4b64ed45 100644 --- a/src/main/java/ceos/backend/domain/recruitment/dto/response/GetRecruitmentResponse.java +++ b/src/main/java/ceos/backend/domain/recruitment/dto/UserRecruitmentDTO.java @@ -1,4 +1,4 @@ -package ceos.backend.domain.recruitment.dto.response; +package ceos.backend.domain.recruitment.dto; import ceos.backend.domain.recruitment.domain.Recruitment; @@ -7,8 +7,7 @@ import lombok.Getter; @Getter -@Builder -public class GetRecruitmentResponse { +public class UserRecruitmentDTO { private int generation; private String prodStudyUrl; private String designStudyUrl; @@ -22,8 +21,36 @@ public class GetRecruitmentResponse { private LocalDate otDate; private LocalDate demodayDate; - public static GetRecruitmentResponse from(Recruitment recruitment) { - return GetRecruitmentResponse.builder() + @Builder + public UserRecruitmentDTO( + int generation, + String prodStudyUrl, + String designStudyUrl, + String devStudyUrl, + LocalDate startDateDoc, + LocalDate endDateDoc, + LocalDate resultDateDoc, + LocalDate startDateInterview, + LocalDate endDateInterview, + LocalDate resultDateFinal, + LocalDate otDate, + LocalDate demodayDate) { + this.generation = generation; + this.prodStudyUrl = prodStudyUrl; + this.designStudyUrl = designStudyUrl; + this.devStudyUrl = devStudyUrl; + this.startDateDoc = startDateDoc; + this.endDateDoc = endDateDoc; + this.resultDateDoc = resultDateDoc; + this.startDateInterview = startDateInterview; + this.endDateInterview = endDateInterview; + this.resultDateFinal = resultDateFinal; + this.otDate = otDate; + this.demodayDate = demodayDate; + } + + public static UserRecruitmentDTO from(Recruitment recruitment) { + return UserRecruitmentDTO.builder() .generation(recruitment.getGeneration()) .prodStudyUrl(recruitment.getProdStudyUrl()) .designStudyUrl(recruitment.getDesignStudyUrl()) diff --git a/src/main/java/ceos/backend/domain/recruitment/dto/request/UpdateRecruitmentRequest.java b/src/main/java/ceos/backend/domain/recruitment/dto/request/UpdateRecruitmentRequest.java deleted file mode 100644 index 65908497..00000000 --- a/src/main/java/ceos/backend/domain/recruitment/dto/request/UpdateRecruitmentRequest.java +++ /dev/null @@ -1,22 +0,0 @@ -package ceos.backend.domain.recruitment.dto.request; - - -import java.time.LocalDate; -import lombok.Getter; - -@Getter -public class UpdateRecruitmentRequest { - private int generation; - private String prodStudyUrl; - private String designStudyUrl; - private String devStudyUrl; - private LocalDate startDateDoc; - private LocalDate endDateDoc; - private LocalDate resultDateDoc; - private LocalDate startDateInterview; - private LocalDate endDateInterview; - private LocalDate resultDateFinal; - private String openChatUrl; - private LocalDate otDate; - private LocalDate demodayDate; -} diff --git a/src/main/java/ceos/backend/domain/recruitment/dto/response/OpenChatUrlResponse.java b/src/main/java/ceos/backend/domain/recruitment/dto/response/OpenChatUrlResponse.java deleted file mode 100644 index e343a3f3..00000000 --- a/src/main/java/ceos/backend/domain/recruitment/dto/response/OpenChatUrlResponse.java +++ /dev/null @@ -1,16 +0,0 @@ -package ceos.backend.domain.recruitment.dto.response; - - -import ceos.backend.domain.recruitment.domain.Recruitment; -import lombok.Builder; -import lombok.Getter; - -@Getter -@Builder -public class OpenChatUrlResponse { - private String openChatUrl; - - public static OpenChatUrlResponse from(Recruitment recruitment) { - return OpenChatUrlResponse.builder().openChatUrl(recruitment.getOpenChatUrl()).build(); - } -} diff --git a/src/main/java/ceos/backend/domain/recruitment/service/RecruitmentService.java b/src/main/java/ceos/backend/domain/recruitment/service/RecruitmentService.java index 434b0248..6370d7bb 100644 --- a/src/main/java/ceos/backend/domain/recruitment/service/RecruitmentService.java +++ b/src/main/java/ceos/backend/domain/recruitment/service/RecruitmentService.java @@ -2,9 +2,8 @@ import ceos.backend.domain.recruitment.domain.Recruitment; -import ceos.backend.domain.recruitment.dto.request.UpdateRecruitmentRequest; -import ceos.backend.domain.recruitment.dto.response.GetRecruitmentResponse; -import ceos.backend.domain.recruitment.dto.response.OpenChatUrlResponse; +import ceos.backend.domain.recruitment.dto.RecruitmentDTO; +import ceos.backend.domain.recruitment.dto.UserRecruitmentDTO; import ceos.backend.domain.recruitment.helper.RecruitmentHelper; import ceos.backend.domain.recruitment.repository.RecruitmentRepository; import lombok.RequiredArgsConstructor; @@ -22,22 +21,22 @@ public class RecruitmentService { private final RecruitmentHelper recruitmentHelper; @Transactional(readOnly = true) - public GetRecruitmentResponse getRecruitment() { + public RecruitmentDTO getRecruitment() { Recruitment recruitment = recruitmentHelper.takeRecruitment(); - return GetRecruitmentResponse.from(recruitment); + return RecruitmentDTO.from(recruitment); } - public OpenChatUrlResponse getOpenChatUrl() { + public UserRecruitmentDTO getOpenChatUrl() { Recruitment recruitment = recruitmentHelper.takeRecruitment(); - return OpenChatUrlResponse.from(recruitment); + return UserRecruitmentDTO.from(recruitment); } @Transactional - public void updateRecruitment(UpdateRecruitmentRequest updateRecruitmentRequest) { + public void updateRecruitment(RecruitmentDTO recruitmentDTO) { Recruitment recruitment = recruitmentHelper.takeRecruitment(); // 객체 업데이트 - recruitment.updateRecruitment(updateRecruitmentRequest); + recruitment.updateRecruitment(recruitmentDTO); recruitmentRepository.save(recruitment); } }