From 676d5b56273cf91c55013c0ba51dfb582bf8383b Mon Sep 17 00:00:00 2001 From: chaentopia Date: Thu, 16 May 2024 16:55:04 +0900 Subject: [PATCH 01/12] =?UTF-8?q?Chore=20[#10]=20gitignore=20=EC=88=98?= =?UTF-8?q?=EC=A0=95,=20properies=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/jpa-buddy.xml | 6 ++++++ .idea/misc.xml | 6 ++++++ .idea/vcs.xml | 6 ++++++ jumpit/.gitignore | 3 ++- jumpit/src/main/resources/application.properties | 1 - 5 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 .idea/jpa-buddy.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml delete mode 100644 jumpit/src/main/resources/application.properties diff --git a/.idea/jpa-buddy.xml b/.idea/jpa-buddy.xml new file mode 100644 index 0000000..966d5f5 --- /dev/null +++ b/.idea/jpa-buddy.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..59780fe --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/jumpit/.gitignore b/jumpit/.gitignore index a10581c..112b115 100644 --- a/jumpit/.gitignore +++ b/jumpit/.gitignore @@ -4,7 +4,8 @@ build/ !gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ -.yaml + +*.yaml ### STS ### .apt_generated diff --git a/jumpit/src/main/resources/application.properties b/jumpit/src/main/resources/application.properties deleted file mode 100644 index f18d8e2..0000000 --- a/jumpit/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=jumpit From 24251b4e2e205c89314d5d40f5c193a0ad0b7bb4 Mon Sep 17 00:00:00 2001 From: chaentopia Date: Thu, 16 May 2024 17:00:04 +0900 Subject: [PATCH 02/12] =?UTF-8?q?Feat=20[#10]=20=EC=83=9D=EC=84=B1=20Reque?= =?UTF-8?q?st=20Body=20DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/sopt/jumpit/resume/dto/ResumeCreateRequest.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeCreateRequest.java diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeCreateRequest.java b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeCreateRequest.java new file mode 100644 index 0000000..a6d3cc7 --- /dev/null +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeCreateRequest.java @@ -0,0 +1,7 @@ +package org.sopt.jumpit.resume.dto; + +public record ResumeCreateRequest( + String title, + Long userId +) { +} From 47f40d3fa9567631f9e3e88d8a4a440f21548b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 04:08:19 +0900 Subject: [PATCH 03/12] =?UTF-8?q?Feat=20[#10]=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/sopt/jumpit/resume/domain/Resume.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/domain/Resume.java b/jumpit/src/main/java/org/sopt/jumpit/resume/domain/Resume.java index 6fd34db..64637cf 100644 --- a/jumpit/src/main/java/org/sopt/jumpit/resume/domain/Resume.java +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/domain/Resume.java @@ -1,6 +1,8 @@ package org.sopt.jumpit.resume.domain; import jakarta.persistence.*; +import lombok.Builder; +import org.sopt.jumpit.resume.dto.ResumeCreateRequest; import org.sopt.jumpit.user.domain.User; import java.time.LocalDateTime; @@ -28,4 +30,17 @@ public class Resume { @Column(name = "createdAt") private LocalDateTime createdAt; + @Builder + private Resume(User owner, String title) { + this.owner = owner; + this.title = title; + this.isPrivate = false; + } + + public static Resume create(User owner, String title) { + return Resume.builder() + .title(title) + .owner(owner) + .build(); + } } From 9b08c0a199429e77cee9a57bff119b47a706d535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 04:08:29 +0900 Subject: [PATCH 04/12] =?UTF-8?q?Feat=20[#10]=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=EB=A9=94=EC=84=B8=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sopt/jumpit/global/common/dto/message/ErrorMessage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jumpit/src/main/java/org/sopt/jumpit/global/common/dto/message/ErrorMessage.java b/jumpit/src/main/java/org/sopt/jumpit/global/common/dto/message/ErrorMessage.java index 4a4bf54..10173aa 100644 --- a/jumpit/src/main/java/org/sopt/jumpit/global/common/dto/message/ErrorMessage.java +++ b/jumpit/src/main/java/org/sopt/jumpit/global/common/dto/message/ErrorMessage.java @@ -10,7 +10,8 @@ public enum ErrorMessage { SEARCH_FAILED(HttpStatus.BAD_REQUEST.value(), "[ERROR] 채용 공고 검색에 실패하였습니다."), INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR.value(), "[ERROR] 서버 내부 오류가 발생하였습니다."), COMPANY_NOT_FOUND_BY_ID_EXCEPTION(HttpStatus.NOT_FOUND.value(), "[ERROR] ID에 해당하는 기업이 없습니다."), - SKILL_NOT_FOUND_BY_ID_EXCEPTION(HttpStatus.NOT_FOUND.value(), "[ERROR] ID에 해당하는 기술스택이 없습니다.") + SKILL_NOT_FOUND_BY_ID_EXCEPTION(HttpStatus.NOT_FOUND.value(), "[ERROR] ID에 해당하는 기술스택이 없습니다."), + USER_NOT_FOUND_BY_ID_EXCEPTION(HttpStatus.NOT_FOUND.value(), "[ERROR] ID에 해당하는 유저를 찾을 수 없습니다.") ; private final int status; From 2953edb705a00028d97caf49d34eda14dfbf9776 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 04:08:47 +0900 Subject: [PATCH 05/12] =?UTF-8?q?Feat=20[#10]=20=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jumpit/resume/service/ResumeService.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java new file mode 100644 index 0000000..d343c9f --- /dev/null +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java @@ -0,0 +1,30 @@ +package org.sopt.jumpit.resume.service; + +import jakarta.transaction.Transactional; +import lombok.RequiredArgsConstructor; +import org.sopt.jumpit.global.common.dto.message.ErrorMessage; +import org.sopt.jumpit.global.exception.BusinessException; +import org.sopt.jumpit.resume.domain.Resume; +import org.sopt.jumpit.resume.dto.ResumeCreateRequest; +import org.sopt.jumpit.resume.repository.ResumeRepository; +import org.sopt.jumpit.user.domain.User; +import org.sopt.jumpit.user.repository.UserRepository; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class ResumeService { + private final ResumeRepository resumeRepository; + private final UserRepository userRepository; + + @Transactional + public void createResume( + ResumeCreateRequest resumeCreateRequest + ) { + User findUser = userRepository.findById(resumeCreateRequest.userId()).orElseThrow( + () -> new BusinessException(ErrorMessage.SEARCH_FAILED) + ); + Resume resume = Resume.create(findUser, resumeCreateRequest.title()); + resumeRepository.save(resume); + } +} From 655be24b1404849e8b663722ef30a89f0d968f58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 04:09:07 +0900 Subject: [PATCH 06/12] =?UTF-8?q?Feat=20[#10]=20=EC=BB=A8=ED=8A=B8?= =?UTF-8?q?=EB=A1=A4=EB=9F=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resume/controller/ResumeController.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java b/jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java new file mode 100644 index 0000000..8201984 --- /dev/null +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java @@ -0,0 +1,31 @@ +package org.sopt.jumpit.resume.controller; + + +import lombok.RequiredArgsConstructor; +import org.sopt.jumpit.global.common.dto.SuccessResponse; +import org.sopt.jumpit.resume.dto.ResumeCreateRequest; +import org.sopt.jumpit.resume.service.ResumeService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.net.URI; + +@RestController +@RequestMapping("/api/v1/resumes") +@RequiredArgsConstructor +public class ResumeController { + private final ResumeService resumeService; + + @PostMapping + public ResponseEntity createResume ( + @RequestBody ResumeCreateRequest resumeCreateRequest + ) { + resumeService.createResume(resumeCreateRequest); + return ResponseEntity.ok() + .build(); + } +} From bc4f323f9d4840a5a2fde90184bad8caabd78be1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 05:06:45 +0900 Subject: [PATCH 07/12] =?UTF-8?q?Fix=20[#10]=20=EC=97=90=EB=9F=AC=20?= =?UTF-8?q?=EB=A9=94=EC=84=B8=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/sopt/jumpit/resume/service/ResumeService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java index d343c9f..892fd9f 100644 --- a/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java @@ -22,7 +22,7 @@ public void createResume( ResumeCreateRequest resumeCreateRequest ) { User findUser = userRepository.findById(resumeCreateRequest.userId()).orElseThrow( - () -> new BusinessException(ErrorMessage.SEARCH_FAILED) + () -> new BusinessException(ErrorMessage.USER_NOT_FOUND_BY_ID_EXCEPTION) ); Resume resume = Resume.create(findUser, resumeCreateRequest.title()); resumeRepository.save(resume); From 9ca40409df933853fc38471f6ac57029df98b81b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 05:08:24 +0900 Subject: [PATCH 08/12] =?UTF-8?q?Fix=20[#10]=20=EC=9D=B4=EB=A0=A5=EC=84=9C?= =?UTF-8?q?=20=EC=A0=9C=EB=AA=A9=20=EB=94=94=ED=8F=B4=ED=8A=B8=EA=B0=92?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/sopt/jumpit/resume/service/ResumeService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java index 892fd9f..ec61071 100644 --- a/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java @@ -24,7 +24,7 @@ public void createResume( User findUser = userRepository.findById(resumeCreateRequest.userId()).orElseThrow( () -> new BusinessException(ErrorMessage.USER_NOT_FOUND_BY_ID_EXCEPTION) ); - Resume resume = Resume.create(findUser, resumeCreateRequest.title()); + Resume resume = Resume.create(findUser, "내 이력서"); resumeRepository.save(resume); } } From 7814f3e2809183194e7e35f8a5c1559a2779f332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 05:40:10 +0900 Subject: [PATCH 09/12] =?UTF-8?q?Feat=20[#13]=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/sopt/jumpit/resume/dto/Resume.java | 12 ++++++++++++ .../sopt/jumpit/resume/dto/ResumeSearchResponse.java | 2 ++ 2 files changed, 14 insertions(+) create mode 100644 jumpit/src/main/java/org/sopt/jumpit/resume/dto/Resume.java create mode 100644 jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/dto/Resume.java b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/Resume.java new file mode 100644 index 0000000..217e799 --- /dev/null +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/Resume.java @@ -0,0 +1,12 @@ +package org.sopt.jumpit.resume.dto; + +import java.time.LocalDateTime; + +public record Resume( + Long id, + String title, + Boolean isPrivate, + LocalDateTime createdAt, + LocalDateTime modifiedAt +) { +} diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java new file mode 100644 index 0000000..352100d --- /dev/null +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java @@ -0,0 +1,2 @@ +package org.sopt.jumpit.resume.dto;public record ResumeSearchResponse() { +} From 07fd2cb6ecb8957ccd26ac9030d203f813b4b734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 05:40:37 +0900 Subject: [PATCH 10/12] =?UTF-8?q?Feat=20[#13]=20=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/sopt/jumpit/resume/service/ResumeService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java index ec61071..2e57d09 100644 --- a/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/service/ResumeService.java @@ -6,6 +6,7 @@ import org.sopt.jumpit.global.exception.BusinessException; import org.sopt.jumpit.resume.domain.Resume; import org.sopt.jumpit.resume.dto.ResumeCreateRequest; +import org.sopt.jumpit.resume.dto.ResumeSearchResponse; import org.sopt.jumpit.resume.repository.ResumeRepository; import org.sopt.jumpit.user.domain.User; import org.sopt.jumpit.user.repository.UserRepository; @@ -27,4 +28,10 @@ public void createResume( Resume resume = Resume.create(findUser, "내 이력서"); resumeRepository.save(resume); } + + public Resume findResumeById(Long resumeId) { + return resumeRepository.findById(resumeId).orElseThrow( + () -> new BusinessException(ErrorMessage.USER_NOT_FOUND_BY_ID_EXCEPTION) + ); + } } From 535fee8fc4180c44e781088c74060273b189a6ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 05:40:52 +0900 Subject: [PATCH 11/12] =?UTF-8?q?Feat=20[#13]=20DTO=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/sopt/jumpit/resume/dto/ResumeSearchResponse.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java index 352100d..6a0162a 100644 --- a/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/dto/ResumeSearchResponse.java @@ -1,2 +1,9 @@ -package org.sopt.jumpit.resume.dto;public record ResumeSearchResponse() { +package org.sopt.jumpit.resume.dto; + +public record ResumeSearchResponse( + Long userId, + Resume resume +) { + + } From 4c53d0ec7c7ccfc2631fe3ce48bd8f9e8641f53f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=B1=84=EC=9D=80?= Date: Sun, 19 May 2024 05:41:03 +0900 Subject: [PATCH 12/12] =?UTF-8?q?Feat=20[#13]=20=EC=BB=A8=ED=8A=B8?= =?UTF-8?q?=EB=A1=A4=EB=9F=AC=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jumpit/resume/controller/ResumeController.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java b/jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java index 8201984..5504d16 100644 --- a/jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java +++ b/jumpit/src/main/java/org/sopt/jumpit/resume/controller/ResumeController.java @@ -3,16 +3,11 @@ import lombok.RequiredArgsConstructor; import org.sopt.jumpit.global.common.dto.SuccessResponse; +import org.sopt.jumpit.resume.domain.Resume; import org.sopt.jumpit.resume.dto.ResumeCreateRequest; import org.sopt.jumpit.resume.service.ResumeService; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.net.URI; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/v1/resumes") @@ -28,4 +23,9 @@ public ResponseEntity createResume ( return ResponseEntity.ok() .build(); } + + @GetMapping("/{userId}") + public ResponseEntity findResumeById(@PathVariable Long userId) { + return ResponseEntity.ok(resumeService.findResumeById(userId)); + } }