diff --git a/src/main/java/com/dongyang/dongpo/controller/bookmark/BookmarkController.java b/src/main/java/com/dongyang/dongpo/controller/bookmark/BookmarkController.java index 2b7d427..bad7a08 100644 --- a/src/main/java/com/dongyang/dongpo/controller/bookmark/BookmarkController.java +++ b/src/main/java/com/dongyang/dongpo/controller/bookmark/BookmarkController.java @@ -26,10 +26,11 @@ public ResponseEntity> addBookmark(@RequestBody Map("success")); } - @DeleteMapping("/{id}") - public ResponseEntity> deleteBookmark(@PathVariable Long id, + @DeleteMapping("/{storeId}") + @Operation(summary = "북마크 제거") + public ResponseEntity> deleteBookmark(@PathVariable Long storeId, @AuthenticationPrincipal Member member) { - bookmarkService.deleteBookmark(id, member); + bookmarkService.deleteBookmark(storeId, member); return ResponseEntity.ok(new ApiResponse<>("success")); } } diff --git a/src/main/java/com/dongyang/dongpo/repository/bookmark/BookmarkRepository.java b/src/main/java/com/dongyang/dongpo/repository/bookmark/BookmarkRepository.java index 7c6f8ea..d751232 100644 --- a/src/main/java/com/dongyang/dongpo/repository/bookmark/BookmarkRepository.java +++ b/src/main/java/com/dongyang/dongpo/repository/bookmark/BookmarkRepository.java @@ -7,11 +7,14 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; +import java.util.Optional; public interface BookmarkRepository extends JpaRepository { List findByMemberId(Long id); List findByMember(Member member); + Optional findByStoreAndMember(Store store, Member member); + boolean existsByStoreAndMember(Store store, Member member); } diff --git a/src/main/java/com/dongyang/dongpo/service/bookmark/BookmarkService.java b/src/main/java/com/dongyang/dongpo/service/bookmark/BookmarkService.java index befdce1..717e027 100644 --- a/src/main/java/com/dongyang/dongpo/service/bookmark/BookmarkService.java +++ b/src/main/java/com/dongyang/dongpo/service/bookmark/BookmarkService.java @@ -54,12 +54,14 @@ public List getMyBookmarks(Member member) { } @Transactional - public void deleteBookmark(Long id, Member member) { - StoreBookmark bookmark = bookmarkRepository.findById(id) + public void deleteBookmark(Long storeId, Member member) { + Store store = storeRepository.findById(storeId) + .orElseThrow(() -> new CustomException(ErrorCode.STORE_NOT_FOUND)); + StoreBookmark bookmark = bookmarkRepository.findByStoreAndMember(store, member) .orElseThrow(() -> new CustomException(ErrorCode.BOOKMARK_NOT_FOUND)); bookmarkRepository.delete(bookmark); - log.info("Member Id : {} is Delete Bookmark Id : {}", member.getId(), id); + log.info("Member {} deleted Bookmark : storeId -> {}", member.getEmail(), storeId); } public boolean isStoreBookmarkedByMember(Store store, Member member) {