From 7c19b0b3ef365102d5a2d43950a5464552e31443 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:30:54 +0900 Subject: [PATCH 01/35] =?UTF-8?q?[feat/#16]=20requestDto=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../licenseInfo/LicenseInfoRequest.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/com/il210so/server/dto/request/licenseInfo/LicenseInfoRequest.java diff --git a/src/main/java/com/il210so/server/dto/request/licenseInfo/LicenseInfoRequest.java b/src/main/java/com/il210so/server/dto/request/licenseInfo/LicenseInfoRequest.java new file mode 100644 index 0000000..cff8389 --- /dev/null +++ b/src/main/java/com/il210so/server/dto/request/licenseInfo/LicenseInfoRequest.java @@ -0,0 +1,34 @@ +package com.il210so.server.dto.request.licenseInfo; + +import com.il210so.server.domain.LicenseInfo; +import com.il210so.server.domain.Member; +import com.il210so.server.domain.Resume; +import lombok.Getter; + +import java.time.LocalDate; + +@Getter +public class LicenseInfoRequest { + private String licenseName; + private LocalDate getDate; + private String agency; + + public LicenseInfoRequest() { + } + + public LicenseInfoRequest(String licenseName, LocalDate getDate, String agency) { + this.licenseName = licenseName; + this.getDate = getDate; + this.agency = agency; + } + + public LicenseInfo toLicenseInfo(Member member, Resume resume) { + return new LicenseInfo().builder() + .member(member) + .resume(resume) + .licenseName(this.licenseName) + .getDate(this.getDate) + .agency(this.agency) + .build(); + } +} From 7b770556946b99c999341911895859b0ee419b6c Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:34:25 +0900 Subject: [PATCH 02/35] =?UTF-8?q?[feat#16]=20responseDto=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../licenseInfo/LicenseInfoResponse.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java diff --git a/src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java b/src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java new file mode 100644 index 0000000..972e3b7 --- /dev/null +++ b/src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java @@ -0,0 +1,32 @@ +package com.il210so.server.dto.response.licenseInfo; + +import com.il210so.server.domain.LicenseInfo; +import lombok.Getter; + +import java.time.LocalDate; + +@Getter +public class LicenseInfoResponse { + private Long id; + private String licenseName; + private LocalDate getDate; + private String agency; + + public LicenseInfoResponse(Long id, String licenseName, LocalDate getDate, String agency) { + this.id = id; + this.licenseName = licenseName; + this.getDate = getDate; + this.agency = agency; + } + + public static LicenseInfoResponse from (LicenseInfo licenseInfo) { + return new LicenseInfoResponse( + licenseInfo.getId(), + licenseInfo.getLicenseName(), + licenseInfo.getGetDate(), + licenseInfo.getAgency() + ); + } +} + + From de839d6d0871e78ee320e0864797270e9f1262a8 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:38:15 +0900 Subject: [PATCH 03/35] =?UTF-8?q?[feat/#16]=20repository=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/repository/LicenseInfoRepository.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/java/com/il210so/server/repository/LicenseInfoRepository.java diff --git a/src/main/java/com/il210so/server/repository/LicenseInfoRepository.java b/src/main/java/com/il210so/server/repository/LicenseInfoRepository.java new file mode 100644 index 0000000..ff7e1e3 --- /dev/null +++ b/src/main/java/com/il210so/server/repository/LicenseInfoRepository.java @@ -0,0 +1,11 @@ +package com.il210so.server.repository; + +import com.il210so.server.domain.LicenseInfo; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface LicenseInfoRepository extends JpaRepository { + List findByMemberIdAndResumeId(Long memberId, Long resumeId); + LicenseInfo findByIdAndMemberIdAndResumeId(Long id, Long memberId, Long resumeId); +} From 247721d3e843cca241690240cb128d00263934ca Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:41:33 +0900 Subject: [PATCH 04/35] =?UTF-8?q?[feat/#16]=20LicenseInfoService=20?= =?UTF-8?q?=EC=9D=B8=ED=84=B0=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/licenseInfo/LicenseInfoService.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoService.java diff --git a/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoService.java b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoService.java new file mode 100644 index 0000000..7b1bb57 --- /dev/null +++ b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoService.java @@ -0,0 +1,14 @@ +package com.il210so.server.service.licenseInfo; + +import com.il210so.server.dto.request.licenseInfo.LicenseInfoRequest; +import com.il210so.server.dto.response.licenseInfo.LicenseInfoResponse; + +import java.util.List; + +public interface LicenseInfoService { + void save(LicenseInfoRequest licenseInfoRequest, Long memberId, Long resumeId); + + void edit(LicenseInfoRequest licenseInfoRequest, Long memberId, Long resumeId, Long licenseInfoId); + + List showLicenseInfos(Long memberId, Long resumeId); +} From 2729e33bb474b1345944ccf44860fb465c53265d Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:45:54 +0900 Subject: [PATCH 05/35] =?UTF-8?q?[feat/#16]=20=EC=9E=90=EA=B2=A9=EC=A6=9D?= =?UTF-8?q?=20=EC=A0=80=EC=9E=A5=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../licenseInfo/LicenseInfoServiceImpl.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java diff --git a/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java new file mode 100644 index 0000000..5a6ca94 --- /dev/null +++ b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java @@ -0,0 +1,67 @@ +package com.il210so.server.service.licenseInfo; + +import com.il210so.server.domain.LicenseInfo; +import com.il210so.server.domain.Member; +import com.il210so.server.domain.Resume; +import com.il210so.server.dto.request.licenseInfo.LicenseInfoRequest; +import com.il210so.server.dto.response.licenseInfo.LicenseInfoResponse; +import com.il210so.server.exception.ErrorCode; +import com.il210so.server.exception.Il210soException; +import com.il210so.server.repository.LicenseInfoRepository; +import com.il210so.server.repository.MemberRepository; +import com.il210so.server.repository.ResumeRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +@Transactional +public class LicenseInfoServiceImpl implements LicenseInfoService { + + private final MemberRepository memberRepository; + private final ResumeRepository resumeRepository; + private final LicenseInfoRepository licenseInfoRepository; + + @Override + public void save(LicenseInfoRequest licenseInfoRequest, Long memberId, Long resumeId) { + validateMemberExists(memberId); + validateResumeExists(resumeId); + LicenseInfo licenseInfo = licenseInfoRequest.toLicenseInfo(findMemberById(memberId), findResumeById(resumeId)); + licenseInfoRepository.save(licenseInfo); + } + + @Override + public void edit(LicenseInfoRequest licenseInfoRequest, Long memberId, Long resumeId, Long licenseInfoId) { + + } + + @Override + public List showLicenseInfos(Long memberId, Long resumeId) { + return null; + } + + private void validateResumeExists(Long resumeId) { + if (!resumeRepository.existsById(resumeId)) { + throw new Il210soException(ErrorCode.RESUME_NOT_FOUND); + } + } + + private void validateMemberExists(Long memberId) { + if (!memberRepository.existsById(memberId)) { + throw new Il210soException(ErrorCode.MEMBER_NOT_FOUND); + } + } + + private Member findMemberById(Long memberId) { + return memberRepository.findById(memberId) + .orElseThrow(() -> new Il210soException(ErrorCode.MEMBER_NOT_FOUND)); + } + + private Resume findResumeById(Long resumeId) { + return resumeRepository.findById(resumeId) + .orElseThrow(() -> new Il210soException(ErrorCode.RESUME_NOT_FOUND)); + } +} From 1f171d6efe8a170ab62145b428c09b9255feeee9 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:48:24 +0900 Subject: [PATCH 06/35] =?UTF-8?q?[feat/#16]=20=EC=97=90=EB=9F=AC=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/il210so/server/exception/ErrorCode.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/exception/ErrorCode.java b/src/main/java/com/il210so/server/exception/ErrorCode.java index 896396a..2293946 100644 --- a/src/main/java/com/il210so/server/exception/ErrorCode.java +++ b/src/main/java/com/il210so/server/exception/ErrorCode.java @@ -9,7 +9,8 @@ public enum ErrorCode { MEMBER_NOT_FOUND(NOT_FOUND, "회원을 찾을 수 없습니다."), RESUME_NOT_FOUND(NOT_FOUND, "이력서를 찾을 수 없습니다."), ACADEMIC_INFO_NOT_FOUND(NOT_FOUND, "학력정보를 찾을 수 없습니다."), - CAREER_INFO_NOT_FOUND(NOT_FOUND, "경력정보를 찾을 수 없습니다."); + CAREER_INFO_NOT_FOUND(NOT_FOUND, "경력정보를 찾을 수 없습니다."), + LICENSE_INFO_NOT_FOUND(NOT_FOUND, "자격정보를 찾을 수 없습니다."); private final HttpStatus status; private final String message; From 70bed68df287536a49192ea8837d78dc4108d540 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:56:27 +0900 Subject: [PATCH 07/35] =?UTF-8?q?[feat/#16]=20=EC=9E=90=EA=B2=A9=EC=A6=9D?= =?UTF-8?q?=20=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=A0=95=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/il210so/server/domain/LicenseInfo.java | 12 ++++++++++++ .../licenseInfo/LicenseInfoServiceImpl.java | 14 +++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/domain/LicenseInfo.java b/src/main/java/com/il210so/server/domain/LicenseInfo.java index 0a22b3e..52f9e33 100644 --- a/src/main/java/com/il210so/server/domain/LicenseInfo.java +++ b/src/main/java/com/il210so/server/domain/LicenseInfo.java @@ -1,5 +1,6 @@ package com.il210so.server.domain; +import com.il210so.server.dto.response.licenseInfo.LicenseInfoResponse; import jakarta.persistence.*; import lombok.Builder; import lombok.Getter; @@ -43,4 +44,15 @@ public LicenseInfo(Long id, Member member, Resume resume, String licenseName, Lo this.getDate = getDate; this.agency = agency; } + + public LicenseInfo update(String licenseName, LocalDate getDate, String agency) { + return new LicenseInfo().builder() + .id(this.id) + .member(this.member) + .resume(this.resume) + .licenseName(licenseName) + .getDate(getDate) + .agency(agency) + .build(); + } } diff --git a/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java index 5a6ca94..a5aff77 100644 --- a/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java @@ -35,7 +35,14 @@ public void save(LicenseInfoRequest licenseInfoRequest, Long memberId, Long resu @Override public void edit(LicenseInfoRequest licenseInfoRequest, Long memberId, Long resumeId, Long licenseInfoId) { - + validateMemberExists(memberId); + validateResumeExists(resumeId); + LicenseInfo licenseInfo = findByLicenseInfoId(licenseInfoId); + LicenseInfo updatedLicenseInfo = licenseInfo.update( + licenseInfoRequest.getLicenseName(), + licenseInfoRequest.getGetDate(), + licenseInfoRequest.getAgency()); + licenseInfoRepository.save(updatedLicenseInfo); } @Override @@ -64,4 +71,9 @@ private Resume findResumeById(Long resumeId) { return resumeRepository.findById(resumeId) .orElseThrow(() -> new Il210soException(ErrorCode.RESUME_NOT_FOUND)); } + + private LicenseInfo findByLicenseInfoId(Long licenseInfoId) { + return licenseInfoRepository.findById(licenseInfoId) + .orElseThrow(() -> new Il210soException(ErrorCode.LICENSE_INFO_NOT_FOUND)); + } } From 9553b2d3c9062581b0e1adfd538090eac7e35141 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 08:58:54 +0900 Subject: [PATCH 08/35] =?UTF-8?q?[feat/#16]=20=EC=9E=90=EA=B2=A9=EC=A6=9D?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/licenseInfo/LicenseInfoResponse.java | 10 ++++++++++ .../service/licenseInfo/LicenseInfoServiceImpl.java | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java b/src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java index 972e3b7..6694744 100644 --- a/src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java +++ b/src/main/java/com/il210so/server/dto/response/licenseInfo/LicenseInfoResponse.java @@ -1,9 +1,13 @@ package com.il210so.server.dto.response.licenseInfo; +import com.il210so.server.domain.CareerInfo; import com.il210so.server.domain.LicenseInfo; +import com.il210so.server.dto.response.careerInfo.CareerInfoResponse; import lombok.Getter; import java.time.LocalDate; +import java.util.List; +import java.util.stream.Collectors; @Getter public class LicenseInfoResponse { @@ -27,6 +31,12 @@ public static LicenseInfoResponse from (LicenseInfo licenseInfo) { licenseInfo.getAgency() ); } + + public static List from(List licenseInfos) { + return licenseInfos.stream() + .map(LicenseInfoResponse::from) + .collect(Collectors.toList()); + } } diff --git a/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java index a5aff77..d225995 100644 --- a/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/licenseInfo/LicenseInfoServiceImpl.java @@ -47,7 +47,10 @@ public void edit(LicenseInfoRequest licenseInfoRequest, Long memberId, Long resu @Override public List showLicenseInfos(Long memberId, Long resumeId) { - return null; + validateMemberExists(memberId); + validateResumeExists(resumeId); + List licenseInfos = licenseInfoRepository.findByMemberIdAndResumeId(memberId, resumeId); + return LicenseInfoResponse.from(licenseInfos); } private void validateResumeExists(Long resumeId) { From 9510e59ab6e2590bee9a7048e40ceced73c506c4 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:01:47 +0900 Subject: [PATCH 09/35] =?UTF-8?q?[feat/#16]=20controller=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LicenseInfoController.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/il210so/server/controller/LicenseInfoController.java diff --git a/src/main/java/com/il210so/server/controller/LicenseInfoController.java b/src/main/java/com/il210so/server/controller/LicenseInfoController.java new file mode 100644 index 0000000..acb9069 --- /dev/null +++ b/src/main/java/com/il210so/server/controller/LicenseInfoController.java @@ -0,0 +1,44 @@ +package com.il210so.server.controller; + +import com.il210so.server.dto.request.licenseInfo.LicenseInfoRequest; +import com.il210so.server.dto.response.licenseInfo.LicenseInfoResponse; +import com.il210so.server.service.licenseInfo.LicenseInfoService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/members/{memberId}/resumes/{resumeId}/license-infos") +public class LicenseInfoController { + + private final LicenseInfoService licenseInfoService; + + @PostMapping + public ResponseEntity save( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId, + @RequestBody LicenseInfoRequest licenseInfoRequest) { + licenseInfoService.save(licenseInfoRequest, memberId, resumeId); + return ResponseEntity.ok().build(); + } + + @PutMapping("/{licenseInfoId}") + public ResponseEntity edit( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId, + @PathVariable("licenseInfoId") Long licenseInfoId, + @RequestBody LicenseInfoRequest licenseInfoRequest) { + licenseInfoService.edit(licenseInfoRequest, memberId, resumeId, licenseInfoId); + return ResponseEntity.ok().build(); + } + + @GetMapping + public List getLicenseInfos( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId) { + return licenseInfoService.showLicenseInfos(memberId, resumeId); + } +} From 3bcf62bc50a57de1e81830860420c40e82427626 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:31:47 +0900 Subject: [PATCH 10/35] =?UTF-8?q?[feat/#18]=20requestDto=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trainingInfo/TrainingInfoRequest.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java diff --git a/src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java b/src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java new file mode 100644 index 0000000..e6939f3 --- /dev/null +++ b/src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java @@ -0,0 +1,35 @@ +package com.il210so.server.dto.request.trainingInfo; + +import com.il210so.server.domain.Member; +import com.il210so.server.domain.Resume; +import com.il210so.server.domain.TrainingInfo; + +import java.time.YearMonth; + +public class TrainingInfoRequest { + private String trainingName; + private YearMonth trainingStartDate; + private YearMonth trainingEndDate; + private String trainingAgency; + + public TrainingInfoRequest() { + } + + public TrainingInfoRequest(String trainingName, YearMonth trainingStartDate, YearMonth trainingEndDate, String trainingAgency) { + this.trainingName = trainingName; + this.trainingStartDate = trainingStartDate; + this.trainingEndDate = trainingEndDate; + this.trainingAgency = trainingAgency; + } + + public TrainingInfo toTrainingInfo(Member member, Resume resume) { + return new TrainingInfo().builder() + .member(member) + .resume(resume) + .trainingName(this.trainingName) + .trainingStartDate(this.trainingStartDate) + .trainingEndDate(this.trainingEndDate) + .trainingAgency(this.trainingAgency) + .build(); + } +} From 91fb78a7ac2dc0d7328a2086a3b34704aa5bd86f Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:32:48 +0900 Subject: [PATCH 11/35] =?UTF-8?q?[refactor/#18]=20@Getter=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/dto/request/trainingInfo/TrainingInfoRequest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java b/src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java index e6939f3..048a6ec 100644 --- a/src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java +++ b/src/main/java/com/il210so/server/dto/request/trainingInfo/TrainingInfoRequest.java @@ -3,9 +3,11 @@ import com.il210so.server.domain.Member; import com.il210so.server.domain.Resume; import com.il210so.server.domain.TrainingInfo; +import lombok.Getter; import java.time.YearMonth; +@Getter public class TrainingInfoRequest { private String trainingName; private YearMonth trainingStartDate; From 5b21b064422c30d42e6771c792005abefbaccf47 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:38:19 +0900 Subject: [PATCH 12/35] =?UTF-8?q?[feat/#18]=20responseDto=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trainingInfo/TrainingInfoResponse.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java diff --git a/src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java b/src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java new file mode 100644 index 0000000..8f671af --- /dev/null +++ b/src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java @@ -0,0 +1,40 @@ +package com.il210so.server.dto.response.trainingInfo; + +import com.il210so.server.domain.TrainingInfo; +import lombok.Getter; + +import java.time.YearMonth; +import java.util.List; +import java.util.stream.Collectors; + +@Getter +public class TrainingInfoResponse { + private Long id; + private String trainingName; + private YearMonth trainingStartDate; + private YearMonth trainingEndDate; + private String trainingAgency; + + public TrainingInfoResponse(Long id, String trainingName, YearMonth trainingStartDate, YearMonth trainingEndDate, String trainingAgency) { + this.id = id; + this.trainingName = trainingName; + this.trainingStartDate = trainingStartDate; + this.trainingEndDate = trainingEndDate; + this.trainingAgency = trainingAgency; + } + + public static TrainingInfoResponse from(TrainingInfo trainingInfo) { + return new TrainingInfoResponse( + trainingInfo.getId(), + trainingInfo.getTrainingName(), + trainingInfo.getTrainingStartDate(), + trainingInfo.getTrainingEndDate(), + trainingInfo.getTrainingAgency()); + } + + public List from (List trainingInfos) { + return trainingInfos.stream() + .map(TrainingInfoResponse::from) + .collect(Collectors.toList()); + } +} From 1b6df70bc3be0778a23c49f512bdb7fad11925b1 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:43:31 +0900 Subject: [PATCH 13/35] =?UTF-8?q?[feat/#18]=20respository=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/repository/TrainingInfoRepository.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/com/il210so/server/repository/TrainingInfoRepository.java diff --git a/src/main/java/com/il210so/server/repository/TrainingInfoRepository.java b/src/main/java/com/il210so/server/repository/TrainingInfoRepository.java new file mode 100644 index 0000000..d993f45 --- /dev/null +++ b/src/main/java/com/il210so/server/repository/TrainingInfoRepository.java @@ -0,0 +1,12 @@ +package com.il210so.server.repository; + +import com.il210so.server.domain.TrainingInfo; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface TrainingInfoRepository extends JpaRepository { + List findByMemberIdAndResumeId(Long memberId, Long resumeId); + + TrainingInfo findByIdAndMemberIdAndResumeId(Long trainingInfoId, Long memberId, Long resumeId); +} From ef2eb74d0bd9e2f9901155d9a5949a0d980ed3d3 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:46:57 +0900 Subject: [PATCH 14/35] =?UTF-8?q?[feat/#18]=20=EC=84=9C=EB=B9=84=EC=8A=A4?= =?UTF-8?q?=20=EC=9D=B8=ED=84=B0=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/trainingInfo/TrainingInfoService.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoService.java diff --git a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoService.java b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoService.java new file mode 100644 index 0000000..0bdbb24 --- /dev/null +++ b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoService.java @@ -0,0 +1,14 @@ +package com.il210so.server.service.trainingInfo; + +import com.il210so.server.dto.request.trainingInfo.TrainingInfoRequest; +import com.il210so.server.dto.response.trainingInfo.TrainingInfoResponse; + +import java.util.List; + +public interface TrainingInfoService { + void save(TrainingInfoRequest trainingInfoRequest, Long memberId, Long resumeId); + + void edit(TrainingInfoRequest trainingInfoRequest, Long memberId, Long resumeId, Long trainingInfoId); + + List showTrainingInfos(Long memberId, Long resumeId); +} From 2bf365b7c19e1c259fbb4491b7e3418562deb982 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:48:28 +0900 Subject: [PATCH 15/35] =?UTF-8?q?[feat/#18]=20=EC=84=9C=EB=B9=84=EC=8A=A4?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84=EC=B2=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trainingInfo/TrainingInfoServiceImpl.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java diff --git a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java new file mode 100644 index 0000000..5944acb --- /dev/null +++ b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java @@ -0,0 +1,30 @@ +package com.il210so.server.service.trainingInfo; + +import com.il210so.server.domain.TrainingInfo; +import com.il210so.server.dto.request.trainingInfo.TrainingInfoRequest; +import com.il210so.server.dto.response.trainingInfo.TrainingInfoResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +@RequiredArgsConstructor +@Transactional +public class TrainingInfoServiceImpl implements TrainingInfoService { + @Override + public void save(TrainingInfoRequest trainingInfoRequest, Long memberId, Long resumeId) { + + } + + @Override + public void edit(TrainingInfoRequest trainingInfoRequest, Long memberId, Long resumeId, Long trainingInfoId) { + + } + + @Override + public List showTrainingInfos(Long memberId, Long resumeId) { + return null; + } +} From f713c8f264b2f825e6c1915adf80500ca542429a Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:50:42 +0900 Subject: [PATCH 16/35] =?UTF-8?q?[feat/#18]=20=ED=9B=88=EB=A0=A8=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trainingInfo/TrainingInfoServiceImpl.java | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java index 5944acb..2dc071e 100644 --- a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java @@ -1,8 +1,17 @@ package com.il210so.server.service.trainingInfo; +import com.il210so.server.domain.LicenseInfo; +import com.il210so.server.domain.Member; +import com.il210so.server.domain.Resume; import com.il210so.server.domain.TrainingInfo; import com.il210so.server.dto.request.trainingInfo.TrainingInfoRequest; import com.il210so.server.dto.response.trainingInfo.TrainingInfoResponse; +import com.il210so.server.exception.ErrorCode; +import com.il210so.server.exception.Il210soException; +import com.il210so.server.repository.LicenseInfoRepository; +import com.il210so.server.repository.MemberRepository; +import com.il210so.server.repository.ResumeRepository; +import com.il210so.server.repository.TrainingInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -13,9 +22,17 @@ @RequiredArgsConstructor @Transactional public class TrainingInfoServiceImpl implements TrainingInfoService { + + private final MemberRepository memberRepository; + private final ResumeRepository resumeRepository; + private final TrainingInfoRepository trainingInfoRepository; + @Override public void save(TrainingInfoRequest trainingInfoRequest, Long memberId, Long resumeId) { - + validateMemberExists(memberId); + validateResumeExists(resumeId); + TrainingInfo trainingInfo = trainingInfoRequest.toTrainingInfo(findMemberById(memberId), findResumeById(resumeId)); + trainingInfoRepository.save(trainingInfo); } @Override @@ -27,4 +44,26 @@ public void edit(TrainingInfoRequest trainingInfoRequest, Long memberId, Long re public List showTrainingInfos(Long memberId, Long resumeId) { return null; } + + private void validateResumeExists(Long resumeId) { + if (!resumeRepository.existsById(resumeId)) { + throw new Il210soException(ErrorCode.RESUME_NOT_FOUND); + } + } + + private void validateMemberExists(Long memberId) { + if (!memberRepository.existsById(memberId)) { + throw new Il210soException(ErrorCode.MEMBER_NOT_FOUND); + } + } + + private Member findMemberById(Long memberId) { + return memberRepository.findById(memberId) + .orElseThrow(() -> new Il210soException(ErrorCode.MEMBER_NOT_FOUND)); + } + + private Resume findResumeById(Long resumeId) { + return resumeRepository.findById(resumeId) + .orElseThrow(() -> new Il210soException(ErrorCode.RESUME_NOT_FOUND)); + } } From 2501b00a0be781fe35cf8580865fa5e92ea87ad8 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:57:12 +0900 Subject: [PATCH 17/35] =?UTF-8?q?[feat/#18]=20=EC=97=90=EB=9F=AC=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/il210so/server/exception/ErrorCode.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/exception/ErrorCode.java b/src/main/java/com/il210so/server/exception/ErrorCode.java index 2293946..a18d590 100644 --- a/src/main/java/com/il210so/server/exception/ErrorCode.java +++ b/src/main/java/com/il210so/server/exception/ErrorCode.java @@ -10,7 +10,8 @@ public enum ErrorCode { RESUME_NOT_FOUND(NOT_FOUND, "이력서를 찾을 수 없습니다."), ACADEMIC_INFO_NOT_FOUND(NOT_FOUND, "학력정보를 찾을 수 없습니다."), CAREER_INFO_NOT_FOUND(NOT_FOUND, "경력정보를 찾을 수 없습니다."), - LICENSE_INFO_NOT_FOUND(NOT_FOUND, "자격정보를 찾을 수 없습니다."); + LICENSE_INFO_NOT_FOUND(NOT_FOUND, "자격정보를 찾을 수 없습니다."), + TRAINING_INFO_NOT_FOUND(NOT_FOUND, "훈련정보를 찾을 수 없습니다."); private final HttpStatus status; private final String message; From c81a6f8764e9b50e1e39054241d3951148f56569 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:57:27 +0900 Subject: [PATCH 18/35] =?UTF-8?q?[feat/#18]=20=ED=9B=88=EB=A0=A8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/il210so/server/domain/TrainingInfo.java | 13 +++++++++++++ .../trainingInfo/TrainingInfoServiceImpl.java | 15 ++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/domain/TrainingInfo.java b/src/main/java/com/il210so/server/domain/TrainingInfo.java index c1f19d3..107f5cc 100644 --- a/src/main/java/com/il210so/server/domain/TrainingInfo.java +++ b/src/main/java/com/il210so/server/domain/TrainingInfo.java @@ -1,5 +1,6 @@ package com.il210so.server.domain; +import com.il210so.server.dto.request.trainingInfo.TrainingInfoRequest; import jakarta.persistence.*; import lombok.Builder; import lombok.Getter; @@ -47,4 +48,16 @@ public TrainingInfo(Long id, Member member, Resume resume, String trainingName, this.trainingEndDate = trainingEndDate; this.trainingAgency = trainingAgency; } + + public TrainingInfo update(String trainingName, YearMonth trainingStartDate, YearMonth trainingEndDate, String trainingAgency) { + return new TrainingInfo().builder() + .id(this.id) + .member(this.member) + .resume(this.resume) + .trainingName(trainingName) + .trainingStartDate(trainingStartDate) + .trainingEndDate(trainingEndDate) + .trainingAgency(trainingAgency) + .build(); + } } diff --git a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java index 2dc071e..8660564 100644 --- a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java @@ -37,7 +37,15 @@ public void save(TrainingInfoRequest trainingInfoRequest, Long memberId, Long re @Override public void edit(TrainingInfoRequest trainingInfoRequest, Long memberId, Long resumeId, Long trainingInfoId) { - + validateMemberExists(memberId); + validateResumeExists(resumeId); + TrainingInfo trainingInfo = findByTrainingInfoId(trainingInfoId); + TrainingInfo updatedTrainingInfo = trainingInfo.update( + trainingInfoRequest.getTrainingName(), + trainingInfoRequest.getTrainingStartDate(), + trainingInfoRequest.getTrainingEndDate(), + trainingInfoRequest.getTrainingAgency()); + trainingInfoRepository.save(updatedTrainingInfo); } @Override @@ -66,4 +74,9 @@ private Resume findResumeById(Long resumeId) { return resumeRepository.findById(resumeId) .orElseThrow(() -> new Il210soException(ErrorCode.RESUME_NOT_FOUND)); } + + private TrainingInfo findByTrainingInfoId(Long trainingInfoId) { + return trainingInfoRepository.findById(trainingInfoId) + .orElseThrow(() -> new Il210soException(ErrorCode.TRAINING_INFO_NOT_FOUND)); + } } From 0b714f99282da48efb23836f1bfba9a403ee4185 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 09:59:35 +0900 Subject: [PATCH 19/35] =?UTF-8?q?[refactor/#18]=20static=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/dto/response/trainingInfo/TrainingInfoResponse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java b/src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java index 8f671af..5916d5a 100644 --- a/src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java +++ b/src/main/java/com/il210so/server/dto/response/trainingInfo/TrainingInfoResponse.java @@ -32,7 +32,7 @@ public static TrainingInfoResponse from(TrainingInfo trainingInfo) { trainingInfo.getTrainingAgency()); } - public List from (List trainingInfos) { + public static List from (List trainingInfos) { return trainingInfos.stream() .map(TrainingInfoResponse::from) .collect(Collectors.toList()); From d6ba4a0737c5b9f02da7d9c65c0fd619b21b4798 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:00:09 +0900 Subject: [PATCH 20/35] =?UTF-8?q?[feat/#18]=20=ED=9B=88=EB=A0=A8=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/trainingInfo/TrainingInfoServiceImpl.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java index 8660564..dd0c8a4 100644 --- a/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/trainingInfo/TrainingInfoServiceImpl.java @@ -5,6 +5,7 @@ import com.il210so.server.domain.Resume; import com.il210so.server.domain.TrainingInfo; import com.il210so.server.dto.request.trainingInfo.TrainingInfoRequest; +import com.il210so.server.dto.response.licenseInfo.LicenseInfoResponse; import com.il210so.server.dto.response.trainingInfo.TrainingInfoResponse; import com.il210so.server.exception.ErrorCode; import com.il210so.server.exception.Il210soException; @@ -50,7 +51,10 @@ public void edit(TrainingInfoRequest trainingInfoRequest, Long memberId, Long re @Override public List showTrainingInfos(Long memberId, Long resumeId) { - return null; + validateMemberExists(memberId); + validateResumeExists(resumeId); + List trainingInfos = trainingInfoRepository.findByMemberIdAndResumeId(memberId, resumeId); + return TrainingInfoResponse.from(trainingInfos); } private void validateResumeExists(Long resumeId) { From dd33d5bc9070999ab06e4087ca79e742c3881ca9 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:02:22 +0900 Subject: [PATCH 21/35] =?UTF-8?q?[feat/#18]=20controller=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TrainingInfoController.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/il210so/server/controller/TrainingInfoController.java diff --git a/src/main/java/com/il210so/server/controller/TrainingInfoController.java b/src/main/java/com/il210so/server/controller/TrainingInfoController.java new file mode 100644 index 0000000..d978dc3 --- /dev/null +++ b/src/main/java/com/il210so/server/controller/TrainingInfoController.java @@ -0,0 +1,44 @@ +package com.il210so.server.controller; + +import com.il210so.server.dto.request.trainingInfo.TrainingInfoRequest; +import com.il210so.server.dto.response.trainingInfo.TrainingInfoResponse; +import com.il210so.server.service.trainingInfo.TrainingInfoService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/members/{memberId}/resumes/{resumeId}/training-infos") +public class TrainingInfoController { + + private final TrainingInfoService trainingInfoService; + + @PostMapping + public ResponseEntity save( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId, + @RequestBody TrainingInfoRequest trainingInfoRequest) { + trainingInfoService.save(trainingInfoRequest, memberId, resumeId); + return ResponseEntity.ok().build(); + } + + @PutMapping("/{trainingInfoId}") + public ResponseEntity edit( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId, + @PathVariable("trainingInfoId") Long trainingInfoId, + @RequestBody TrainingInfoRequest trainingInfoRequest) { + trainingInfoService.edit(trainingInfoRequest, memberId, resumeId, trainingInfoId); + return ResponseEntity.ok().build(); + } + + @GetMapping + public List getTrainingInfos( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId) { + return trainingInfoService.showTrainingInfos(memberId, resumeId); + } +} \ No newline at end of file From 27609af6c2c19774c4c0e13dc30eae2a84d1056b Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:30:52 +0900 Subject: [PATCH 22/35] =?UTF-8?q?[feat/#20]=20requestDto=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personalInfo/PersonalInfoRequest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java diff --git a/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java b/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java new file mode 100644 index 0000000..24a9602 --- /dev/null +++ b/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java @@ -0,0 +1,38 @@ +package com.il210so.server.dto.request.personalInfo; + +import com.il210so.server.domain.Member; +import com.il210so.server.domain.PersonalInfo; +import com.il210so.server.domain.Resume; + +import java.time.LocalDate; + +public class PersonalInfoRequest { + private String name; + private LocalDate bdate; + private String address; + private String phoneNumber; + private String emergencyPhone; + + public PersonalInfoRequest() { + } + + public PersonalInfoRequest(String name, LocalDate bdate, String address, String phoneNumber, String emergencyPhone) { + this.name = name; + this.bdate = bdate; + this.address = address; + this.phoneNumber = phoneNumber; + this.emergencyPhone = emergencyPhone; + } + + public PersonalInfo toPersonalInfo(Member member, Resume resume) { + return PersonalInfo.builder() + .member(member) + .resume(resume) + .name(this.name) + .bdate(this.bdate) + .address(this.address) + .phoneNumber(this.phoneNumber) + .build(); + } + +} From 9acdb20cae163a74b8407b8991f3d771b7531ad4 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:34:27 +0900 Subject: [PATCH 23/35] =?UTF-8?q?[feat/#20]=20responseDto=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personalInfo/PersonalInfoResponse.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java diff --git a/src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java b/src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java new file mode 100644 index 0000000..fd1d4a7 --- /dev/null +++ b/src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java @@ -0,0 +1,32 @@ +package com.il210so.server.dto.response.personalInfo; + +import com.il210so.server.domain.PersonalInfo; +import lombok.Getter; + +import java.time.LocalDate; + +@Getter +public class PersonalInfoResponse { + private String name; + private LocalDate bdate; + private String address; + private String phoneNumber; + private String emergencyPhone; + + public PersonalInfoResponse(String name, LocalDate bdate, String address, String phoneNumber, String emergencyPhone) { + this.name = name; + this.bdate = bdate; + this.address = address; + this.phoneNumber = phoneNumber; + this.emergencyPhone = emergencyPhone; + } + + public static PersonalInfoResponse from(PersonalInfo personalInfo) { + return new PersonalInfoResponse( + personalInfo.getName(), + personalInfo.getBdate(), + personalInfo.getAddress(), + personalInfo.getPhoneNumber(), + personalInfo.getEmergencyPhone()); + } +} From e4e3f4af8aee4e97023aa57880eeebae5f258894 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:36:00 +0900 Subject: [PATCH 24/35] =?UTF-8?q?[feat/#20]=20repository=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/repository/PersonalInfoRepository.java | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/main/java/com/il210so/server/repository/PersonalInfoRepository.java diff --git a/src/main/java/com/il210so/server/repository/PersonalInfoRepository.java b/src/main/java/com/il210so/server/repository/PersonalInfoRepository.java new file mode 100644 index 0000000..98f2b10 --- /dev/null +++ b/src/main/java/com/il210so/server/repository/PersonalInfoRepository.java @@ -0,0 +1,10 @@ +package com.il210so.server.repository; + +import com.il210so.server.domain.PersonalInfo; + +public interface PersonalInfoRepository { + boolean existsByMemberIdAndResumeId(Long memberId, Long resumeId); + + PersonalInfo findByMemberIdAndResumeId(Long memberId, Long resumeId); + +} From 66d7fb5e3e7fb2dd7b04621a4744c8bc9825eb64 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:36:59 +0900 Subject: [PATCH 25/35] =?UTF-8?q?[refactor/#20]=20JpaRepository=20?= =?UTF-8?q?=EC=83=81=EC=86=8D=20=EB=B0=9B=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/il210so/server/repository/PersonalInfoRepository.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/repository/PersonalInfoRepository.java b/src/main/java/com/il210so/server/repository/PersonalInfoRepository.java index 98f2b10..68ab936 100644 --- a/src/main/java/com/il210so/server/repository/PersonalInfoRepository.java +++ b/src/main/java/com/il210so/server/repository/PersonalInfoRepository.java @@ -1,8 +1,9 @@ package com.il210so.server.repository; import com.il210so.server.domain.PersonalInfo; +import org.springframework.data.jpa.repository.JpaRepository; -public interface PersonalInfoRepository { +public interface PersonalInfoRepository extends JpaRepository { boolean existsByMemberIdAndResumeId(Long memberId, Long resumeId); PersonalInfo findByMemberIdAndResumeId(Long memberId, Long resumeId); From 5a1b315aa4544e9cb16b54c0a09fed781f829f7e Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:39:46 +0900 Subject: [PATCH 26/35] =?UTF-8?q?[feat/#20]=20service=20=EC=9D=B8=ED=84=B0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/personalInfo/PersonalInfoService.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/com/il210so/server/service/personalInfo/PersonalInfoService.java diff --git a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoService.java b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoService.java new file mode 100644 index 0000000..7794ea0 --- /dev/null +++ b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoService.java @@ -0,0 +1,13 @@ +package com.il210so.server.service.personalInfo; + +import com.il210so.server.dto.request.personalInfo.PersonalInfoRequest; +import com.il210so.server.dto.response.personalInfo.PersonalInfoResponse; + +public interface PersonalInfoService { + + void savePersonalInfo(PersonalInfoRequest personalInfoRequest, Long memberId, Long resumeId); + + void editPersonalInfo(PersonalInfoRequest personalInfoRequest, Long memberId, Long resumeId); + + PersonalInfoResponse showPersonalInfos(Long memberId, Long resumeId); +} From a8ca8480a4ff689f38c4a288db45d534dcac1636 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:42:46 +0900 Subject: [PATCH 27/35] =?UTF-8?q?[feat/#20]=20=EA=B0=9C=EC=9D=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A0=80=EC=9E=A5=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personalInfo/PersonalInfoServiceImpl.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java diff --git a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java new file mode 100644 index 0000000..8471a63 --- /dev/null +++ b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java @@ -0,0 +1,66 @@ +package com.il210so.server.service.personalInfo; + +import com.il210so.server.domain.AcademicInfo; +import com.il210so.server.domain.Member; +import com.il210so.server.domain.PersonalInfo; +import com.il210so.server.domain.Resume; +import com.il210so.server.dto.request.personalInfo.PersonalInfoRequest; +import com.il210so.server.dto.response.personalInfo.PersonalInfoResponse; +import com.il210so.server.exception.ErrorCode; +import com.il210so.server.exception.Il210soException; +import com.il210so.server.repository.MemberRepository; +import com.il210so.server.repository.PersonalInfoRepository; +import com.il210so.server.repository.ResumeRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Transactional +@RequiredArgsConstructor +public class PersonalInfoServiceImpl implements PersonalInfoService{ + + private final MemberRepository memberRepository; + private final ResumeRepository resumeRepository; + private final PersonalInfoRepository personalInfoRepository; + + @Override + public void savePersonalInfo(PersonalInfoRequest personalInfoRequest, Long memberId, Long resumeId) { + validateMemberExists(memberId); + validateResumeExists(resumeId); + PersonalInfo personalInfo = personalInfoRequest.toPersonalInfo(findMemberById(memberId), findResumeById(resumeId)); + personalInfoRepository.save(personalInfo); + } + + @Override + public void editPersonalInfo(PersonalInfoRequest personalInfoRequest, Long memberId, Long resumeId) { + + } + + @Override + public PersonalInfoResponse showPersonalInfos(Long memberId, Long resumeId) { + return null; + } + + private void validateResumeExists(Long resumeId) { + if(!resumeRepository.existsById(resumeId)) { + throw new Il210soException(ErrorCode.RESUME_NOT_FOUND); + } + } + + private void validateMemberExists(Long memberId) { + if(!memberRepository.existsById(memberId)) { + throw new Il210soException(ErrorCode.MEMBER_NOT_FOUND); + } + } + + private Member findMemberById(Long memberId) { + return memberRepository.findById(memberId) + .orElseThrow(() -> new Il210soException(ErrorCode.MEMBER_NOT_FOUND)); + } + + private Resume findResumeById(Long resumeId) { + return resumeRepository.findById(resumeId) + .orElseThrow(() -> new Il210soException(ErrorCode.RESUME_NOT_FOUND)); + } +} From 2b487ac38797b3994d106f3c2ffd009c7127fa27 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:47:46 +0900 Subject: [PATCH 28/35] =?UTF-8?q?[feat/#20]=20=EC=97=90=EB=9F=AC=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/il210so/server/exception/ErrorCode.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/il210so/server/exception/ErrorCode.java b/src/main/java/com/il210so/server/exception/ErrorCode.java index a18d590..e097d08 100644 --- a/src/main/java/com/il210so/server/exception/ErrorCode.java +++ b/src/main/java/com/il210so/server/exception/ErrorCode.java @@ -8,6 +8,7 @@ public enum ErrorCode { MEMBER_NOT_FOUND(NOT_FOUND, "회원을 찾을 수 없습니다."), RESUME_NOT_FOUND(NOT_FOUND, "이력서를 찾을 수 없습니다."), + PERSONAL_INFO_NOT_FOUND(NOT_FOUND, "개인정보를 찾을 수 없습니다."), ACADEMIC_INFO_NOT_FOUND(NOT_FOUND, "학력정보를 찾을 수 없습니다."), CAREER_INFO_NOT_FOUND(NOT_FOUND, "경력정보를 찾을 수 없습니다."), LICENSE_INFO_NOT_FOUND(NOT_FOUND, "자격정보를 찾을 수 없습니다."), From ce6eab5e764e41e32ea7b18edffcb520b5adfb73 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:48:03 +0900 Subject: [PATCH 29/35] =?UTF-8?q?[feat/#20]=20=EA=B0=9C=EC=9D=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=88=98=EC=A0=95=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../il210so/server/domain/PersonalInfo.java | 13 +++++++++++++ .../personalInfo/PersonalInfoServiceImpl.java | 19 +++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/il210so/server/domain/PersonalInfo.java b/src/main/java/com/il210so/server/domain/PersonalInfo.java index 7b54bcb..f29fb70 100644 --- a/src/main/java/com/il210so/server/domain/PersonalInfo.java +++ b/src/main/java/com/il210so/server/domain/PersonalInfo.java @@ -51,4 +51,17 @@ public PersonalInfo(Long id, Member member, Resume resume, String name, LocalDat this.phoneNumber = phoneNumber; this.emergencyPhone = emergencyPhone; } + + public PersonalInfo update(String name, LocalDate bdate, String address, String phoneNumber, String emergencyPhone) { + return new PersonalInfo().builder() + .id(this.id) + .member(this.member) + .resume(this.resume) + .name(this.name) + .bdate(this.bdate) + .address(this.address) + .phoneNumber(this.phoneNumber) + .emergencyPhone(this.emergencyPhone) + .build(); + } } diff --git a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java index 8471a63..155b1e7 100644 --- a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java @@ -1,6 +1,5 @@ package com.il210so.server.service.personalInfo; -import com.il210so.server.domain.AcademicInfo; import com.il210so.server.domain.Member; import com.il210so.server.domain.PersonalInfo; import com.il210so.server.domain.Resume; @@ -34,7 +33,17 @@ public void savePersonalInfo(PersonalInfoRequest personalInfoRequest, Long membe @Override public void editPersonalInfo(PersonalInfoRequest personalInfoRequest, Long memberId, Long resumeId) { - + validateMemberExists(memberId); + validateResumeExists(resumeId); + validatePersonalInfoExists(memberId, resumeId); + PersonalInfo personalInfo = personalInfoRepository.findByMemberIdAndResumeId(memberId, resumeId); + PersonalInfo updatedPersonalInfo = personalInfo.update( + personalInfo.getName(), + personalInfo.getBdate(), + personalInfo.getAddress(), + personalInfo.getPhoneNumber(), + personalInfo.getEmergencyPhone()); + personalInfoRepository.save(updatedPersonalInfo); } @Override @@ -63,4 +72,10 @@ private Resume findResumeById(Long resumeId) { return resumeRepository.findById(resumeId) .orElseThrow(() -> new Il210soException(ErrorCode.RESUME_NOT_FOUND)); } + + private void validatePersonalInfoExists(Long memberId, Long resumeId) { + if (!(personalInfoRepository.existsByMemberIdAndResumeId(memberId, resumeId))) { + throw new Il210soException(ErrorCode.PERSONAL_INFO_NOT_FOUND); + } + } } From 5e7cb9467cf8d22d442e39b6e6c2a0a533d37db2 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:49:22 +0900 Subject: [PATCH 30/35] =?UTF-8?q?[feat/#20]=20=EA=B0=9C=EC=9D=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/personalInfo/PersonalInfoServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java index 155b1e7..c4f579d 100644 --- a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java @@ -47,8 +47,13 @@ public void editPersonalInfo(PersonalInfoRequest personalInfoRequest, Long membe } @Override + @Transactional(readOnly = true) public PersonalInfoResponse showPersonalInfos(Long memberId, Long resumeId) { - return null; + validateMemberExists(memberId); + validateResumeExists(resumeId); + validatePersonalInfoExists(memberId, resumeId); + PersonalInfo personalInfo = personalInfoRepository.findByMemberIdAndResumeId(memberId, resumeId); + return PersonalInfoResponse.from(personalInfo); } private void validateResumeExists(Long resumeId) { From d6c8c38574329d367515f51e636233e87f47d565 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:52:02 +0900 Subject: [PATCH 31/35] =?UTF-8?q?[feat/#20]=20controller=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PersonalInfoController.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/com/il210so/server/controller/PersonalInfoController.java diff --git a/src/main/java/com/il210so/server/controller/PersonalInfoController.java b/src/main/java/com/il210so/server/controller/PersonalInfoController.java new file mode 100644 index 0000000..13d9636 --- /dev/null +++ b/src/main/java/com/il210so/server/controller/PersonalInfoController.java @@ -0,0 +1,41 @@ +package com.il210so.server.controller; + +import com.il210so.server.dto.request.personalInfo.PersonalInfoRequest; +import com.il210so.server.dto.response.personalInfo.PersonalInfoResponse; +import com.il210so.server.service.personalInfo.PersonalInfoService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/members/{memberId}/resumes/{resumeId}/personal-infos") +public class PersonalInfoController { + + private final PersonalInfoService personalInfoService; + + @PostMapping + public ResponseEntity save( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId, + @RequestBody PersonalInfoRequest personalInfoRequest) { + personalInfoService.savePersonalInfo(personalInfoRequest, memberId, resumeId); + return ResponseEntity.ok().build(); + } + + @PutMapping + public ResponseEntity edit( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId, + @RequestBody PersonalInfoRequest personalInfoRequest) { + personalInfoService.editPersonalInfo(personalInfoRequest, memberId, resumeId); + return ResponseEntity.ok().build(); + } + + @GetMapping + public PersonalInfoResponse getPersonalInfos( + @PathVariable("memberId") Long memberId, + @PathVariable("resumeId") Long resumeId) { + return personalInfoService.showPersonalInfos(memberId, resumeId); + } +} From 987b6a88af7c2488329f87cc853c5c8e9caf6e7f Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 10:58:58 +0900 Subject: [PATCH 32/35] =?UTF-8?q?[refactor/#20]=20email=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/il210so/server/domain/PersonalInfo.java | 9 +++++++-- .../dto/request/personalInfo/PersonalInfoRequest.java | 6 +++++- .../dto/response/personalInfo/PersonalInfoResponse.java | 5 ++++- .../service/personalInfo/PersonalInfoServiceImpl.java | 1 + 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/il210so/server/domain/PersonalInfo.java b/src/main/java/com/il210so/server/domain/PersonalInfo.java index f29fb70..c3af6cc 100644 --- a/src/main/java/com/il210so/server/domain/PersonalInfo.java +++ b/src/main/java/com/il210so/server/domain/PersonalInfo.java @@ -31,6 +31,9 @@ public class PersonalInfo { @Column(name = "address", nullable = false) private String address; + @Column(name = "email", nullable = false) + private String email; + @Column(name = "phone_number", nullable = false) private String phoneNumber; @@ -41,18 +44,19 @@ public PersonalInfo() { } @Builder - public PersonalInfo(Long id, Member member, Resume resume, String name, LocalDate bdate, String address, String phoneNumber, String emergencyPhone) { + public PersonalInfo(Long id, Member member, Resume resume, String name, LocalDate bdate, String address, String email, String phoneNumber, String emergencyPhone) { this.id = id; this.member = member; this.resume = resume; this.name = name; this.bdate = bdate; this.address = address; + this.email = email; this.phoneNumber = phoneNumber; this.emergencyPhone = emergencyPhone; } - public PersonalInfo update(String name, LocalDate bdate, String address, String phoneNumber, String emergencyPhone) { + public PersonalInfo update(String name, LocalDate bdate, String address, String email, String phoneNumber, String emergencyPhone) { return new PersonalInfo().builder() .id(this.id) .member(this.member) @@ -60,6 +64,7 @@ public PersonalInfo update(String name, LocalDate bdate, String address, String .name(this.name) .bdate(this.bdate) .address(this.address) + .email(this.email) .phoneNumber(this.phoneNumber) .emergencyPhone(this.emergencyPhone) .build(); diff --git a/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java b/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java index 24a9602..5d1b320 100644 --- a/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java +++ b/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java @@ -10,16 +10,18 @@ public class PersonalInfoRequest { private String name; private LocalDate bdate; private String address; + private String email; private String phoneNumber; private String emergencyPhone; public PersonalInfoRequest() { } - public PersonalInfoRequest(String name, LocalDate bdate, String address, String phoneNumber, String emergencyPhone) { + public PersonalInfoRequest(String name, LocalDate bdate, String address, String email, String phoneNumber, String emergencyPhone) { this.name = name; this.bdate = bdate; this.address = address; + this.email = email; this.phoneNumber = phoneNumber; this.emergencyPhone = emergencyPhone; } @@ -31,7 +33,9 @@ public PersonalInfo toPersonalInfo(Member member, Resume resume) { .name(this.name) .bdate(this.bdate) .address(this.address) + .email(this.email) .phoneNumber(this.phoneNumber) + .emergencyPhone(this.emergencyPhone) .build(); } diff --git a/src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java b/src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java index fd1d4a7..4e9df1c 100644 --- a/src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java +++ b/src/main/java/com/il210so/server/dto/response/personalInfo/PersonalInfoResponse.java @@ -10,13 +10,15 @@ public class PersonalInfoResponse { private String name; private LocalDate bdate; private String address; + private String email; private String phoneNumber; private String emergencyPhone; - public PersonalInfoResponse(String name, LocalDate bdate, String address, String phoneNumber, String emergencyPhone) { + public PersonalInfoResponse(String name, LocalDate bdate, String address, String email, String phoneNumber, String emergencyPhone) { this.name = name; this.bdate = bdate; this.address = address; + this.email = email; this.phoneNumber = phoneNumber; this.emergencyPhone = emergencyPhone; } @@ -26,6 +28,7 @@ public static PersonalInfoResponse from(PersonalInfo personalInfo) { personalInfo.getName(), personalInfo.getBdate(), personalInfo.getAddress(), + personalInfo.getEmail(), personalInfo.getPhoneNumber(), personalInfo.getEmergencyPhone()); } diff --git a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java index c4f579d..6ec0c70 100644 --- a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java @@ -41,6 +41,7 @@ public void editPersonalInfo(PersonalInfoRequest personalInfoRequest, Long membe personalInfo.getName(), personalInfo.getBdate(), personalInfo.getAddress(), + personalInfo.getEmail(), personalInfo.getPhoneNumber(), personalInfo.getEmergencyPhone()); personalInfoRepository.save(updatedPersonalInfo); From 4d4d8980914886782633a604e752d9d537c82162 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 11:20:13 +0900 Subject: [PATCH 33/35] =?UTF-8?q?[refactor/#20]=20@Getter=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/dto/request/personalInfo/PersonalInfoRequest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java b/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java index 5d1b320..174b7f4 100644 --- a/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java +++ b/src/main/java/com/il210so/server/dto/request/personalInfo/PersonalInfoRequest.java @@ -3,9 +3,11 @@ import com.il210so.server.domain.Member; import com.il210so.server.domain.PersonalInfo; import com.il210so.server.domain.Resume; +import lombok.Getter; import java.time.LocalDate; +@Getter public class PersonalInfoRequest { private String name; private LocalDate bdate; From de234b96857be7e15d8996538dc18ddb56eb8423 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 11:24:51 +0900 Subject: [PATCH 34/35] =?UTF-8?q?[refactor/#20]=20personalInfoRequest?= =?UTF-8?q?=EC=97=90=EC=84=9C=20getter=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../personalInfo/PersonalInfoServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java index 6ec0c70..3ef1170 100644 --- a/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java +++ b/src/main/java/com/il210so/server/service/personalInfo/PersonalInfoServiceImpl.java @@ -38,12 +38,12 @@ public void editPersonalInfo(PersonalInfoRequest personalInfoRequest, Long membe validatePersonalInfoExists(memberId, resumeId); PersonalInfo personalInfo = personalInfoRepository.findByMemberIdAndResumeId(memberId, resumeId); PersonalInfo updatedPersonalInfo = personalInfo.update( - personalInfo.getName(), - personalInfo.getBdate(), - personalInfo.getAddress(), - personalInfo.getEmail(), - personalInfo.getPhoneNumber(), - personalInfo.getEmergencyPhone()); + personalInfoRequest.getName(), + personalInfoRequest.getBdate(), + personalInfoRequest.getAddress(), + personalInfoRequest.getEmail(), + personalInfoRequest.getPhoneNumber(), + personalInfoRequest.getEmergencyPhone()); personalInfoRepository.save(updatedPersonalInfo); } From 4f28ee141e529fea9ca8dd3c69a36e12e7b5aca5 Mon Sep 17 00:00:00 2001 From: yaejinkong <0910a@naver.com> Date: Sun, 25 Aug 2024 11:25:22 +0900 Subject: [PATCH 35/35] =?UTF-8?q?[refactor/#20]=20update=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/il210so/server/domain/PersonalInfo.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/il210so/server/domain/PersonalInfo.java b/src/main/java/com/il210so/server/domain/PersonalInfo.java index c3af6cc..4a2ccdb 100644 --- a/src/main/java/com/il210so/server/domain/PersonalInfo.java +++ b/src/main/java/com/il210so/server/domain/PersonalInfo.java @@ -61,12 +61,12 @@ public PersonalInfo update(String name, LocalDate bdate, String address, String .id(this.id) .member(this.member) .resume(this.resume) - .name(this.name) - .bdate(this.bdate) - .address(this.address) - .email(this.email) - .phoneNumber(this.phoneNumber) - .emergencyPhone(this.emergencyPhone) + .name(name) + .bdate(bdate) + .address(address) + .email(email) + .phoneNumber(phoneNumber) + .emergencyPhone(emergencyPhone) .build(); } }