From af6d70f6fd8b2c03218b190de98054c013aa4156 Mon Sep 17 00:00:00 2001 From: Wo-ogie Date: Tue, 2 Jan 2024 20:39:41 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EB=B6=81=EB=A7=88=ED=81=AC=EC=97=90?= =?UTF-8?q?=20=EB=8C=80=ED=95=9C=20=EC=97=B0=EA=B4=80=20=EB=A7=81=ED=81=AC?= =?UTF-8?q?=EB=93=A4=EC=9D=B4=20=EB=B9=84=EC=96=B4=EC=9E=88=EB=8A=94=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=97=90=EB=9F=AC=EA=B0=80=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=ED=95=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=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 --- .../app/dto/bookmark/BookmarkDto.java | 2 ++ .../bookmark/response/BookmarkResponse.java | 20 +++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/dnd/reetplace/app/dto/bookmark/BookmarkDto.java b/src/main/java/com/dnd/reetplace/app/dto/bookmark/BookmarkDto.java index 0800d3f..f698c3b 100644 --- a/src/main/java/com/dnd/reetplace/app/dto/bookmark/BookmarkDto.java +++ b/src/main/java/com/dnd/reetplace/app/dto/bookmark/BookmarkDto.java @@ -10,6 +10,7 @@ import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; +import org.springframework.lang.Nullable; import java.time.LocalDateTime; @@ -24,6 +25,7 @@ public class BookmarkDto { private String thumbnailUrl; private Short rate; private String people; + @Nullable private BookMarkRelLink relLinks; private LocalDateTime createdAt; private LocalDateTime updatedAt; diff --git a/src/main/java/com/dnd/reetplace/app/dto/bookmark/response/BookmarkResponse.java b/src/main/java/com/dnd/reetplace/app/dto/bookmark/response/BookmarkResponse.java index e4226fc..857ed29 100644 --- a/src/main/java/com/dnd/reetplace/app/dto/bookmark/response/BookmarkResponse.java +++ b/src/main/java/com/dnd/reetplace/app/dto/bookmark/response/BookmarkResponse.java @@ -1,5 +1,6 @@ package com.dnd.reetplace.app.dto.bookmark.response; +import com.dnd.reetplace.app.domain.bookmark.BookMarkRelLink; import com.dnd.reetplace.app.dto.bookmark.BookmarkDto; import com.dnd.reetplace.app.dto.member.response.MemberResponse; import com.dnd.reetplace.app.dto.place.response.PlaceResponse; @@ -22,11 +23,13 @@ public class BookmarkResponse { @Schema(description = "북마크 한 장소 정보") private PlaceResponse place; - @Schema(description = "

북마크 종류. 목록은 다음과 같음

" + - "", + @Schema(description = """ +

북마크 종류. 목록은 다음과 같음

+ + """, example = "WANT") private BookmarkType type; @@ -49,6 +52,7 @@ public class BookmarkResponse { private String relLink3; public static BookmarkResponse from(BookmarkDto bookmarkDto) { + BookMarkRelLink relLinks = bookmarkDto.getRelLinks(); return new BookmarkResponse( bookmarkDto.getId(), MemberResponse.from(bookmarkDto.getMember()), @@ -57,9 +61,9 @@ public static BookmarkResponse from(BookmarkDto bookmarkDto) { bookmarkDto.getThumbnailUrl(), bookmarkDto.getRate(), bookmarkDto.getPeople(), - bookmarkDto.getRelLinks().getRelLink1(), - bookmarkDto.getRelLinks().getRelLink2(), - bookmarkDto.getRelLinks().getRelLink3() + relLinks != null ? relLinks.getRelLink1() : null, + relLinks != null ? relLinks.getRelLink2() : null, + relLinks != null ? relLinks.getRelLink3() : null ); } } From 0c2d10730ff3cf7d0f1a4f37fffd6ea17dd70966 Mon Sep 17 00:00:00 2001 From: Wo-ogie Date: Tue, 2 Jan 2024 20:56:50 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=EA=B0=80=EC=9E=A5=20=EC=B5=9C?= =?UTF-8?q?=EA=B7=BC=20=EC=83=9D=EC=84=B1=EB=90=9C=20=EB=B6=81=EB=A7=88?= =?UTF-8?q?=ED=81=AC=20=EC=A1=B0=ED=9A=8C=20=EC=BF=BC=EB=A6=AC=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 --- .../dnd/reetplace/app/repository/BookmarkRepository.java | 2 +- .../com/dnd/reetplace/app/service/BookmarkService.java | 2 +- .../reetplace/unit/app/service/BookmarkServiceTest.java | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/dnd/reetplace/app/repository/BookmarkRepository.java b/src/main/java/com/dnd/reetplace/app/repository/BookmarkRepository.java index b638a5c..7bca223 100644 --- a/src/main/java/com/dnd/reetplace/app/repository/BookmarkRepository.java +++ b/src/main/java/com/dnd/reetplace/app/repository/BookmarkRepository.java @@ -16,7 +16,7 @@ public interface BookmarkRepository extends JpaRepository { boolean existsByMember_IdAndPlace_KakaoPid(Long memberId, String kakaoPid); - Optional findByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType type, Long memberId); + Optional findTop1ByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType type, Long memberId); @Query("select b from Bookmark b " + "join fetch b.place p " + diff --git a/src/main/java/com/dnd/reetplace/app/service/BookmarkService.java b/src/main/java/com/dnd/reetplace/app/service/BookmarkService.java index 876ffc2..e47b64e 100644 --- a/src/main/java/com/dnd/reetplace/app/service/BookmarkService.java +++ b/src/main/java/com/dnd/reetplace/app/service/BookmarkService.java @@ -155,7 +155,7 @@ private Bookmark findById(Long bookmarkId) { } private Bookmark getLatestBookmarkByTypeAndMemberId(BookmarkType type, Long memberId) { - return bookmarkRepository.findByTypeAndMember_IdOrderByCreatedAtDesc(type, memberId) + return bookmarkRepository.findTop1ByTypeAndMember_IdOrderByCreatedAtDesc(type, memberId) .orElseThrow(BookmarkNotFoundException::new); } diff --git a/src/test/java/com/dnd/reetplace/unit/app/service/BookmarkServiceTest.java b/src/test/java/com/dnd/reetplace/unit/app/service/BookmarkServiceTest.java index 5e4cbc3..af38c06 100644 --- a/src/test/java/com/dnd/reetplace/unit/app/service/BookmarkServiceTest.java +++ b/src/test/java/com/dnd/reetplace/unit/app/service/BookmarkServiceTest.java @@ -137,16 +137,16 @@ void givenMemberId_whenGettingNumOfBookmarks_thenReturnNumOfBookmarks() { ); int numOfBookmarks = bookmarks.size(); given(bookmarkRepository.findAllByMember(memberId)).willReturn(bookmarks); - given(bookmarkRepository.findByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.WANT, memberId)).willReturn(Optional.of(createBookmark(dummyMember, dummyPlace))); - given(bookmarkRepository.findByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.DONE, memberId)).willReturn(Optional.of(createBookmark(dummyMember, dummyPlace))); + given(bookmarkRepository.findTop1ByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.WANT, memberId)).willReturn(Optional.of(createBookmark(dummyMember, dummyPlace))); + given(bookmarkRepository.findTop1ByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.DONE, memberId)).willReturn(Optional.of(createBookmark(dummyMember, dummyPlace))); // when BookmarkTypeInformationResponse bookmarkTypeInformationResponse = sut.getBookmarkTypeInformation(memberId); // then then(bookmarkRepository).should().findAllByMember(memberId); - then(bookmarkRepository).should().findByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.WANT, memberId); - then(bookmarkRepository).should().findByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.DONE, memberId); + then(bookmarkRepository).should().findTop1ByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.WANT, memberId); + then(bookmarkRepository).should().findTop1ByTypeAndMember_IdOrderByCreatedAtDesc(BookmarkType.DONE, memberId); then(bookmarkRepository).shouldHaveNoMoreInteractions(); assertThat(bookmarkTypeInformationResponse.getNumOfAll()).isEqualTo(numOfBookmarks); assertThat(bookmarkTypeInformationResponse.getNumOfWant()).isEqualTo(numOfBookmarks);