diff --git a/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/controller/RoadmapManageController.java b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/controller/RoadmapManageController.java index f5b46654..ab572f75 100644 --- a/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/controller/RoadmapManageController.java +++ b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/controller/RoadmapManageController.java @@ -1,6 +1,7 @@ package com.kusitms.mainservice.domain.roadmap.controller; import com.kusitms.mainservice.domain.roadmap.dto.request.RoadmapSharingRequestDto; +import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapStepDto; import com.kusitms.mainservice.domain.roadmap.service.RoadmapManageService; import com.kusitms.mainservice.global.common.SuccessResponse; import com.kusitms.mainservice.global.config.auth.UserId; @@ -8,6 +9,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RequiredArgsConstructor @RequestMapping("/api/manage/roadmap") @RestController @@ -18,4 +21,11 @@ public ResponseEntity> createRoadmap(@UserId Long userId, @Re roadmapManageService.createSharingRoadmap(userId, roadmapSharingRequestDto); return SuccessResponse.created(null); } + + @GetMapping + public ResponseEntity> getCustomSpaceStep(@UserId Long userId, @RequestParam String title){ + final List customRoadmapStepDtoList = roadmapManageService.getTeamRoadmapTitle(userId, title); + return SuccessResponse.ok(customRoadmapStepDtoList); + + } } diff --git a/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/dto/response/CustomRoadmapStepDto.java b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/dto/response/CustomRoadmapStepDto.java new file mode 100644 index 00000000..b5790e53 --- /dev/null +++ b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/dto/response/CustomRoadmapStepDto.java @@ -0,0 +1,18 @@ +package com.kusitms.mainservice.domain.roadmap.dto.response; + +import com.kusitms.mainservice.domain.roadmap.domain.CustomRoadmapSpace; +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class CustomRoadmapStepDto { + private Long stepId; + private String title; + public static CustomRoadmapStepDto of(CustomRoadmapSpace customRoadmapSpace){ + return CustomRoadmapStepDto.builder() + .stepId(customRoadmapSpace.getId()) + .title(customRoadmapSpace.getTitle()) + .build(); + } +} diff --git a/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/repository/CustomRoadmapSpaceRepository.java b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/repository/CustomRoadmapSpaceRepository.java index b55fec07..2dd8ec0f 100644 --- a/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/repository/CustomRoadmapSpaceRepository.java +++ b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/repository/CustomRoadmapSpaceRepository.java @@ -3,5 +3,8 @@ import com.kusitms.mainservice.domain.roadmap.domain.CustomRoadmapSpace; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface CustomRoadmapSpaceRepository extends JpaRepository { + List findAllByCustomRoadmapId(Long id); } diff --git a/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/service/RoadmapManageService.java b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/service/RoadmapManageService.java index bd913e57..156f8454 100644 --- a/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/service/RoadmapManageService.java +++ b/MainService/src/main/java/com/kusitms/mainservice/domain/roadmap/service/RoadmapManageService.java @@ -1,14 +1,10 @@ package com.kusitms.mainservice.domain.roadmap.service; -import com.kusitms.mainservice.domain.roadmap.domain.Roadmap; -import com.kusitms.mainservice.domain.roadmap.domain.RoadmapSpace; -import com.kusitms.mainservice.domain.roadmap.domain.RoadmapTemplate; -import com.kusitms.mainservice.domain.roadmap.domain.RoadmapType; +import com.kusitms.mainservice.domain.roadmap.domain.*; import com.kusitms.mainservice.domain.roadmap.dto.request.RoadmapSharingRequestDto; import com.kusitms.mainservice.domain.roadmap.dto.request.StepDto; -import com.kusitms.mainservice.domain.roadmap.repository.RoadmapRepository; -import com.kusitms.mainservice.domain.roadmap.repository.RoadmapSpaceRepository; -import com.kusitms.mainservice.domain.roadmap.repository.RoadmapTemplateRepository; +import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapStepDto; +import com.kusitms.mainservice.domain.roadmap.repository.*; import com.kusitms.mainservice.domain.template.domain.Template; import com.kusitms.mainservice.domain.template.repository.TemplateRepository; import com.kusitms.mainservice.domain.user.domain.User; @@ -18,11 +14,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; import static com.kusitms.mainservice.domain.roadmap.domain.RoadmapType.getEnumRoadmapTypeFromStringRoadmapType; -import static com.kusitms.mainservice.global.error.ErrorCode.TEMPLATE_NOT_FOUND; -import static com.kusitms.mainservice.global.error.ErrorCode.USER_NOT_FOUND; +import static com.kusitms.mainservice.global.error.ErrorCode.*; @RequiredArgsConstructor @Transactional @@ -33,6 +30,8 @@ public class RoadmapManageService { private final RoadmapSpaceRepository roadmapSpaceRepository; private final TemplateRepository templateRepository; private final RoadmapTemplateRepository roadmapTemplateRepository; + private final CustomRoadmapRepository customRoadmapRepository; + private final CustomRoadmapSpaceRepository customRoadmapSpaceRepository; public void createSharingRoadmap(Long userId, RoadmapSharingRequestDto roadmapSharingRequestDto) { User user = getUserFromUserId(userId); RoadmapType roadmapType = getEnumRoadmapTypeFromStringRoadmapType(roadmapSharingRequestDto.getRoadmapType()); @@ -40,6 +39,18 @@ public void createSharingRoadmap(Long userId, RoadmapSharingRequestDto roadmapSh saveRoadmap(createdRoadmap); saveRoadmapSpace(roadmapSharingRequestDto,createdRoadmap); } + public List getTeamRoadmapTitle(Long userId, String title){ + CustomRoadmap customRoadmap = customRoadmapRepository.findByUserIdAndTitle(userId, title).orElseThrow(()->new EntityNotFoundException(ROADMAP_NOT_FOUND)); + List customRoadmapStepDtoList = createCustomRoadmapStepDto(customRoadmap); + return customRoadmapStepDtoList; + } + private List createCustomRoadmapStepDto(CustomRoadmap customRoadmap){ + List customRoadmapSpaces = customRoadmapSpaceRepository.findAllByCustomRoadmapId(customRoadmap.getId()); + + return customRoadmapSpaces.stream() + .map(space -> CustomRoadmapStepDto.of(space)) + .collect(Collectors.toList()); + } private void saveRoadmapSpace(RoadmapSharingRequestDto roadmapSharingRequestDto,Roadmap createdRoadmap){ for (int i = 0; i < roadmapSharingRequestDto.getSteps().size(); i++) { StepDto stepDto = roadmapSharingRequestDto.getSteps().get(i); diff --git a/MainService/src/main/java/com/kusitms/mainservice/domain/template/service/TemplateManageService.java b/MainService/src/main/java/com/kusitms/mainservice/domain/template/service/TemplateManageService.java index 899da81e..60d80141 100644 --- a/MainService/src/main/java/com/kusitms/mainservice/domain/template/service/TemplateManageService.java +++ b/MainService/src/main/java/com/kusitms/mainservice/domain/template/service/TemplateManageService.java @@ -5,6 +5,7 @@ import com.kusitms.mainservice.domain.roadmap.domain.CustomRoadmapTemplate; import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapDetailResponseDto; import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapSpaceDetailResponseDto; +import com.kusitms.mainservice.domain.roadmap.dto.response.CustomRoadmapStepDto; import com.kusitms.mainservice.domain.roadmap.repository.CustomRoadmapRepository; import com.kusitms.mainservice.domain.roadmap.repository.CustomRoadmapSpaceRepository; import com.kusitms.mainservice.domain.roadmap.repository.CustomRoadmapTemplateRepository; @@ -32,6 +33,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -131,6 +133,7 @@ public void saveTemplateByUserId(Long userId, Long templateId) { saveCustomTemplate(customTemplate); saveCustomTemplateContent(template, customTemplate); } + private void saveTemplateDownload(TemplateDownload templateDownload){ templateDownloadRepository.save(templateDownload); }