From bb25ea3985ca8e7698033fef414f0ddc1e35cc0a Mon Sep 17 00:00:00 2001 From: nuyh Date: Wed, 16 Aug 2023 18:00:03 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=A0=84=EC=B2=B4=20=ED=82=A4=EC=9B=8C?= =?UTF-8?q?=EB=93=9C=20=EC=A1=B0=ED=9A=8C=20API=20=ED=95=99=EC=8A=B5=20?= =?UTF-8?q?=EC=A7=84=EB=8F=84=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roadmap/application/RoadMapService.java | 19 ++---------- .../prolog/roadmap/ui/RoadmapController.java | 7 +++-- .../application/RoadMapServiceTest.java | 31 ------------------- 3 files changed, 7 insertions(+), 50 deletions(-) diff --git a/backend/src/main/java/wooteco/prolog/roadmap/application/RoadMapService.java b/backend/src/main/java/wooteco/prolog/roadmap/application/RoadMapService.java index 875306aad..bfa7b5be8 100644 --- a/backend/src/main/java/wooteco/prolog/roadmap/application/RoadMapService.java +++ b/backend/src/main/java/wooteco/prolog/roadmap/application/RoadMapService.java @@ -35,21 +35,6 @@ public class RoadMapService { private final QuizRepository quizRepository; private final EssayAnswerRepository essayAnswerRepository; - @Transactional(readOnly = true) - public KeywordsResponse findAllKeywords(final Long curriculumId) { - final Curriculum curriculum = curriculumRepository.findById(curriculumId) - .orElseThrow(() -> new BadRequestException(CURRICULUM_NOT_FOUND_EXCEPTION)); - - final Set sessionIds = sessionRepository.findAllByCurriculumId(curriculum.getId()) - .stream() - .map(Session::getId) - .collect(Collectors.toSet()); - - final List keywords = keywordRepository.findBySessionIdIn(sessionIds); - - return KeywordsResponse.createResponseWithChildren(keywords); - } - @Transactional(readOnly = true) public KeywordsResponse findAllKeywordsWithProgress(final Long curriculumId, final Long memberId) { final Curriculum curriculum = curriculumRepository.findById(curriculumId) @@ -73,8 +58,8 @@ public KeywordsResponse findAllKeywordsWithProgress(final Long curriculumId, fin } private KeywordsResponse createWithProgress(final List keywords, - final Map> quizzesPerKeyword, - final Set doneQuizzes) { + final Map> quizzesPerKeyword, + final Set doneQuizzes) { final List keywordResponses = keywords.stream() .filter(Keyword::isRoot) .map(keyword -> createWithProgress(keyword, quizzesPerKeyword, doneQuizzes)) diff --git a/backend/src/main/java/wooteco/prolog/roadmap/ui/RoadmapController.java b/backend/src/main/java/wooteco/prolog/roadmap/ui/RoadmapController.java index 4fbfc82ee..3dde4562b 100644 --- a/backend/src/main/java/wooteco/prolog/roadmap/ui/RoadmapController.java +++ b/backend/src/main/java/wooteco/prolog/roadmap/ui/RoadmapController.java @@ -4,6 +4,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import wooteco.prolog.login.domain.AuthMemberPrincipal; +import wooteco.prolog.login.ui.LoginMember; import wooteco.prolog.roadmap.application.RoadMapService; import wooteco.prolog.roadmap.application.dto.KeywordsResponse; @@ -14,7 +16,8 @@ public class RoadmapController { private final RoadMapService roadMapService; @GetMapping("/roadmaps") - public KeywordsResponse findRoadMapKeyword(@RequestParam final Long curriculumId) { - return roadMapService.findAllKeywords(curriculumId); + public KeywordsResponse findRoadMapKeyword(@AuthMemberPrincipal final LoginMember member, + @RequestParam final Long curriculumId) { + return roadMapService.findAllKeywordsWithProgress(curriculumId, member.getId()); } } diff --git a/backend/src/test/java/wooteco/prolog/roadmap/application/RoadMapServiceTest.java b/backend/src/test/java/wooteco/prolog/roadmap/application/RoadMapServiceTest.java index b6bec7fbd..45d584adb 100644 --- a/backend/src/test/java/wooteco/prolog/roadmap/application/RoadMapServiceTest.java +++ b/backend/src/test/java/wooteco/prolog/roadmap/application/RoadMapServiceTest.java @@ -49,37 +49,6 @@ class RoadMapServiceTest { @InjectMocks private RoadMapService roadMapService; - @Test - @DisplayName("curriculumId가 주어지면 해당 커리큘럼의 키워드들을 전부 조회할 수 있다.") - void findAllKeywords() { - //given - final Curriculum curriculum = new Curriculum(1L, "커리큘럼1"); - final Session session = new Session(1L, curriculum.getId(), "세션1"); - final List sessions = Arrays.asList(session); - final Keyword keyword = new Keyword(1L, "자바1", "자바 설명1", 1, 5, session.getId(), - null, Collections.emptySet()); - - when(curriculumRepository.findById(anyLong())) - .thenReturn(Optional.of(curriculum)); - - when(sessionRepository.findAllByCurriculumId(anyLong())) - .thenReturn(sessions); - - when(keywordRepository.findBySessionIdIn(any())) - .thenReturn(Arrays.asList(keyword)); - - final KeywordsResponse expected = KeywordsResponse.createResponseWithChildren(Arrays.asList(keyword)); - - //when - final KeywordsResponse actual = - roadMapService.findAllKeywords(curriculum.getId()); - - //then - assertThat(actual) - .usingRecursiveComparison() - .isEqualTo(expected); - } - @Test @DisplayName("curriculumId가 주어지면 해당 커리큘럼의 키워드들을 학습 진도와 함께 전부 조회할 수 있다.") void findAllKeywordsWithProgress() {