diff --git a/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java b/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java index 42a3c5988..808df6750 100644 --- a/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java +++ b/booklore-api/src/main/java/com/adityachandel/booklore/service/metadata/MetadataRefreshService.java @@ -312,6 +312,12 @@ public class MetadataRefreshService { bookMetadataUpdater.setBookMetadata(context); Book book = bookMapper.toBook(context.getBookEntity()); + + BookLoreUser user = authenticationService.getAuthenticatedUser(); + if (user != null && book.getShelves() != null) { + book.setShelves(filterShelvesByUserId(book.getShelves(), user.getId())); + } + notificationService.sendMessage(Topic.BOOK_METADATA_UPDATE, book); } } @@ -752,4 +758,11 @@ public class MetadataRefreshService { case BOOKS -> request.getBookIds(); }; } + + private Set filterShelvesByUserId(Set shelves, Long userId) { + if (shelves == null) return Collections.emptySet(); + return shelves.stream() + .filter(shelf -> userId.equals(shelf.getUserId())) + .collect(Collectors.toSet()); + } }