diff --git a/src/main/java/UMC/career_mate/domain/member/service/MemberService.java b/src/main/java/UMC/career_mate/domain/member/service/MemberService.java index eefa65f..6252dda 100644 --- a/src/main/java/UMC/career_mate/domain/member/service/MemberService.java +++ b/src/main/java/UMC/career_mate/domain/member/service/MemberService.java @@ -1,6 +1,5 @@ package UMC.career_mate.domain.member.service; -import UMC.career_mate.domain.chatgpt.GptAnswer; import UMC.career_mate.domain.chatgpt.repository.GptAnswerRepository; import UMC.career_mate.domain.job.Job; import UMC.career_mate.domain.job.Service.JobService; @@ -14,13 +13,10 @@ import UMC.career_mate.domain.recruit.enums.RecruitKeyword; import UMC.career_mate.global.response.exception.GeneralException; import UMC.career_mate.global.response.exception.code.CommonErrorCode; -import java.util.Optional; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; - @Service @Transactional(readOnly = true) @RequiredArgsConstructor @@ -40,7 +36,7 @@ public Member makeProfile(CreateProfileDTO request,Member member) { profileMember.createProfile(request, job); profileMember.completeProfile(); - plannerService.savePlanner(profileMember); + plannerService.initPlanner(profileMember); return profileMember; } diff --git a/src/main/java/UMC/career_mate/domain/planner/controller/PlannerController.java b/src/main/java/UMC/career_mate/domain/planner/controller/PlannerController.java index 86821c5..6a5f7bd 100644 --- a/src/main/java/UMC/career_mate/domain/planner/controller/PlannerController.java +++ b/src/main/java/UMC/career_mate/domain/planner/controller/PlannerController.java @@ -19,6 +19,20 @@ public class PlannerController { private final PlannerCommandService plannerCommandService; private final PlannerQueryService plannerQueryService; + @PostMapping + @Operation( + summary = "플래너 생성(TEST용)", + description = """ + [프로필 작성 완료시 플래너가 자동 생성되기 때문에, PATCH API를 사용해주시면 되겠습니다] + 요청한 멤버에 해당하는 빈 플래너를 생성합니다. + ``` + """) + + public ApiResponse initPlanner(@LoginMember Member member) { + plannerCommandService.initPlanner(member); + return ApiResponse.onSuccess("플래너 생성 완료"); + } + @PatchMapping @Operation( summary = "플래너 수정", diff --git a/src/main/java/UMC/career_mate/domain/planner/converter/PlannerConverter.java b/src/main/java/UMC/career_mate/domain/planner/converter/PlannerConverter.java index aa758ba..b847298 100644 --- a/src/main/java/UMC/career_mate/domain/planner/converter/PlannerConverter.java +++ b/src/main/java/UMC/career_mate/domain/planner/converter/PlannerConverter.java @@ -6,9 +6,7 @@ import UMC.career_mate.domain.planner.dto.response.PlannerListResponseDTO; import UMC.career_mate.domain.planner.dto.response.PlannerResponseDTO; -import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; public class PlannerConverter { @@ -28,8 +26,27 @@ public static Planner toPlanner(Member member, CreatePlannerDTO createPlannerDTO .build(); } - public static List toPlannerList(Member member, List createPlannerDTOList){ - return createPlannerDTOList.stream().map(createPlannerDTO -> PlannerConverter.toPlanner(member, createPlannerDTO)).toList(); + public static Planner toInitialPlanner(Member member){ + return Planner + .builder() + .activityName("") + .startTime(null) + .endTime(null) + .specifics("") + .measurable("") + .achievable("") + .relevant("") + .timeBound("") + .otherPlans("") + .member(member) + .build(); + } + + public static List toInitialPlannerList(Member member){ + return List.of( + PlannerConverter.toInitialPlanner(member), + PlannerConverter.toInitialPlanner(member) + ); } public static PlannerResponseDTO toPlannerResponseDTO(Planner planner){ diff --git a/src/main/java/UMC/career_mate/domain/planner/repository/PlannerRepository.java b/src/main/java/UMC/career_mate/domain/planner/repository/PlannerRepository.java index b8b56be..7fe53ae 100644 --- a/src/main/java/UMC/career_mate/domain/planner/repository/PlannerRepository.java +++ b/src/main/java/UMC/career_mate/domain/planner/repository/PlannerRepository.java @@ -10,6 +10,5 @@ public interface PlannerRepository extends JpaRepository { Boolean existsByMember(Member member); - Optional findPlannerByMember(Member member); List findByMember(Member member); } diff --git a/src/main/java/UMC/career_mate/domain/planner/service/PlannerCommandService.java b/src/main/java/UMC/career_mate/domain/planner/service/PlannerCommandService.java index 9093111..df31e1e 100644 --- a/src/main/java/UMC/career_mate/domain/planner/service/PlannerCommandService.java +++ b/src/main/java/UMC/career_mate/domain/planner/service/PlannerCommandService.java @@ -24,22 +24,25 @@ public class PlannerCommandService { private final PlannerRepository plannerRepository; - public void savePlanner(Member member){ + public void initPlanner(Member member){ + + if(member == null){ + throw new GeneralException(CommonErrorCode.NOT_FOUND_BY_MEMBER_ID); + } if(plannerRepository.existsByMember(member)){ throw new GeneralException(CommonErrorCode.PLANNER_EXISTS); } - List createPlannerDTOList = List.of( - CreatePlannerDTO.builder().build(), - CreatePlannerDTO.builder().build() - ); - - plannerRepository.saveAll(PlannerConverter.toPlannerList(member, createPlannerDTOList)); + plannerRepository.saveAll(PlannerConverter.toInitialPlannerList(member)); } public void editPlanner(Member member, CreatePlannerListDTO createPlannerListDTO){ + if(!plannerRepository.existsByMember(member)){ + throw new GeneralException(CommonErrorCode.PLANNER_NOT_EXISTS); + } + List planners = plannerRepository.findByMember(member); List plannerDTOs = createPlannerListDTO.planners(); @@ -50,6 +53,10 @@ public void editPlanner(Member member, CreatePlannerListDTO createPlannerListDTO public void deletePlanner(Member member){ + if(!plannerRepository.existsByMember(member)){ + throw new GeneralException(CommonErrorCode.PLANNER_NOT_EXISTS); + } + List planners = plannerRepository.findByMember(member); plannerRepository.deleteAll(planners); diff --git a/src/main/java/UMC/career_mate/domain/planner/service/PlannerQueryService.java b/src/main/java/UMC/career_mate/domain/planner/service/PlannerQueryService.java index b2709c9..5f47174 100644 --- a/src/main/java/UMC/career_mate/domain/planner/service/PlannerQueryService.java +++ b/src/main/java/UMC/career_mate/domain/planner/service/PlannerQueryService.java @@ -25,6 +25,11 @@ public class PlannerQueryService { public PlannerListResponseDTO getPlannerByMember(Member member) { List planners = plannerRepository.findByMember(member); + + if (planners.isEmpty()) { + throw new GeneralException(CommonErrorCode.PLANNER_NOT_EXISTS); + } + return PlannerConverter.toPlannerListResponseDTO(planners); } }