diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 676d6af..bb52266 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,8 @@ on: branches: [ "release" ] jobs: - build: + test: + name: test runs-on: ubuntu-latest steps: diff --git a/server/src/main/java/com/codecozy/server/dto/response/BookmarkLocationInfoDto.java b/server/src/main/java/com/codecozy/server/dto/response/BookmarkLocationInfoDto.java new file mode 100644 index 0000000..9e5d5b0 --- /dev/null +++ b/server/src/main/java/com/codecozy/server/dto/response/BookmarkLocationInfoDto.java @@ -0,0 +1,9 @@ +package com.codecozy.server.dto.response; + +// 책갈피 전체 조회 API - 위치 정보 응답을 보낼 때 사용 +public record BookmarkLocationInfoDto( + String placeName, + String address, + String latitude, + String longitude +) { } diff --git a/server/src/main/java/com/codecozy/server/dto/response/BookmarkResponse.java b/server/src/main/java/com/codecozy/server/dto/response/BookmarkResponse.java index 7c6e3b1..29270a9 100644 --- a/server/src/main/java/com/codecozy/server/dto/response/BookmarkResponse.java +++ b/server/src/main/java/com/codecozy/server/dto/response/BookmarkResponse.java @@ -1,11 +1,10 @@ package com.codecozy.server.dto.response; -import java.util.List; public record BookmarkResponse( String date, int markPage, int markPercent, - List location, + BookmarkLocationInfoDto location, String uuid ) {} diff --git a/server/src/main/java/com/codecozy/server/service/BookService.java b/server/src/main/java/com/codecozy/server/service/BookService.java index 5bc06fb..94917b7 100644 --- a/server/src/main/java/com/codecozy/server/service/BookService.java +++ b/server/src/main/java/com/codecozy/server/service/BookService.java @@ -1705,11 +1705,15 @@ public ResponseEntity getBookmark(Long memberId, String isbn) { List bookmarks = bookRecord.getBookmarks(); for (Bookmark bookmark : bookmarks) { // 위치 List 저장 - List location = new ArrayList<>(); - location.add(bookmark.getLocationInfo().getPlaceName()); - location.add(bookmark.getLocationInfo().getAddress()); - location.add(String.valueOf(bookmark.getLocationInfo().getLatitude())); - location.add(String.valueOf(bookmark.getLocationInfo().getLongitude())); + BookmarkLocationInfoDto locationDto = null; + LocationInfo locationInfo = bookmark.getLocationInfo(); + if (locationInfo != null) { + locationDto = new BookmarkLocationInfoDto( + locationInfo.getPlaceName(), + locationInfo.getAddress(), + String.valueOf(locationInfo.getLatitude()), + String.valueOf(locationInfo.getLongitude())); + } // 응답에 보낼 데이터들 int markPage = bookmark.getMarkPage(); @@ -1719,11 +1723,11 @@ public ResponseEntity getBookmark(Long memberId, String isbn) { if (bookRecord.getBookType() == BookType.PAPER_BOOK) { // 페이지 -> 퍼센트 계산 int percent = converterService.pageToPercent(markPage, book.getTotalPage()); - bookmarkList.add(new BookmarkResponse(dateStr, markPage, percent, location, bookmark.getUuid())); + bookmarkList.add(new BookmarkResponse(dateStr, markPage, percent, locationDto, bookmark.getUuid())); } else { // 전자책, 오디오북이면 // 퍼센트 -> 페이지 계산 int page = converterService.percentToPage(markPage, book.getTotalPage()); - bookmarkList.add(new BookmarkResponse(dateStr, page, markPage, location, bookmark.getUuid())); + bookmarkList.add(new BookmarkResponse(dateStr, page, markPage, locationDto, bookmark.getUuid())); } }