From ba5d532fe50b3cb2db7822fd02469a0375723b6f Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 21 Mar 2025 11:08:12 +0100 Subject: [PATCH 1/2] chore: batch delete soft reaction --- .../models/BatchDeleteReactionsRequest.java | 7 +++ .../client/BatchDeleteActivitiesTest.java | 56 +++++++++++++++++-- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java b/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java index bf6efd4a..01f9247a 100644 --- a/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java +++ b/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java @@ -8,9 +8,16 @@ public class BatchDeleteReactionsRequest { private final List ids; + private final Boolean SoftDelete; + public BatchDeleteReactionsRequest(@JsonProperty("ids") List ids) { this.ids = ids; + SoftDelete = null; + } + public BatchDeleteReactionsRequest(@JsonProperty("ids") List ids, @JsonProperty("soft_delete") Boolean softDelete) { + this.ids = ids; + SoftDelete = softDelete; } public List getIds() { diff --git a/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java b/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java index 85ecd7ab..4f99f891 100644 --- a/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java +++ b/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java @@ -4,11 +4,8 @@ import com.google.common.collect.Lists; import io.getstream.core.http.Response; -import io.getstream.core.models.BatchDeleteActivitiesRequest; +import io.getstream.core.models.*; import io.getstream.core.models.BatchDeleteActivitiesRequest.ActivityToDelete; -import io.getstream.core.models.Activity; -import io.getstream.core.models.BatchDeleteReactionsRequest; -import io.getstream.core.models.Reaction; import io.getstream.core.options.Filter; import io.getstream.core.options.Limit; import java8.util.concurrent.CompletableFuture; @@ -150,6 +147,57 @@ public void testDeleteReactions() throws Exception { } + @Test + public void testSoftDeleteReactions() throws Exception { + String uuid1 = UUID.randomUUID().toString().replace("-", ""); + FlatFeed feed = client.flatFeed("user", uuid1); + + // Insert two activities + Activity activity1Res = feed.addActivity(Activity.builder() + .actor("user1") + .verb("post") + .object("object1") + .build()).join(); + + Activity activity2Res = feed.addActivity(Activity.builder() + .actor("user1") + .verb("like") + .object("object2") + .build()).join(); + + // Add reactions to both activities + Reaction u1 = client.reactions().add("user1", "like", activity1Res.getID()).join(); + Reaction u2 = client.reactions().add("user2", "like", activity1Res.getID()).join(); + Reaction u3 = client.reactions().add("user1", "like", activity2Res.getID()).join(); + Reaction u4 = client.reactions().add("user2", "like", activity2Res.getID()).join(); + + // Verify reactions were created + assertNotNull(client.reactions().get(u1.getId()).join()); + assertNotNull(client.reactions().get(u2.getId()).join()); + assertNotNull(client.reactions().get(u3.getId()).join()); + assertNotNull(client.reactions().get(u4.getId()).join()); + + // Soft delete reactions + BatchDeleteReactionsRequest deleteReactionsRequest = + new BatchDeleteReactionsRequest(Arrays.asList(u1.getId(), u2.getId(), u3.getId()), true); + client.deleteReactions(deleteReactionsRequest).join(); + + // Verify reactions were soft deleted + assertThrows(Exception.class, () -> client.reactions().get(u1.getId()).join()); + assertThrows(Exception.class, () -> client.reactions().get(u2.getId()).join()); + assertThrows(Exception.class, () -> client.reactions().get(u3.getId()).join()); + + // Restore reactions and verify + client.reactions().restore(u1.getId()).join(); + client.reactions().restore(u2.getId()).join(); + + ReactionBatch restoredReactions = client.reactions().getBatch(Arrays.asList(u1.getId(), u2.getId())).join(); + List result = restoredReactions.getReactions(); + + assertEquals(2, result.size()); + assertTrue(result.stream().anyMatch(r -> r.getId().equals(u1.getId()))); + assertTrue(result.stream().anyMatch(r -> r.getId().equals(u2.getId()))); + } @Test public void testDeleteActivitiesMultipleFeeds() throws Exception { From 26d028a3c3df9fdac7cd82c7a8441deb42415cad Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 21 Mar 2025 11:31:11 +0100 Subject: [PATCH 2/2] chore: fix tests --- .../models/BatchDeleteReactionsRequest.java | 5 +++++ .../client/BatchDeleteActivitiesTest.java | 19 ++++--------------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java b/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java index 01f9247a..d0292f4d 100644 --- a/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java +++ b/src/main/java/io/getstream/core/models/BatchDeleteReactionsRequest.java @@ -23,4 +23,9 @@ public BatchDeleteReactionsRequest(@JsonProperty("ids") List ids, @JsonP public List getIds() { return ids; } + + @JsonProperty("soft_delete") + public Boolean getSoftDelete() { + return SoftDelete; + } } \ No newline at end of file diff --git a/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java b/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java index 4f99f891..fcaf7f4d 100644 --- a/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java +++ b/src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java @@ -182,21 +182,10 @@ public void testSoftDeleteReactions() throws Exception { new BatchDeleteReactionsRequest(Arrays.asList(u1.getId(), u2.getId(), u3.getId()), true); client.deleteReactions(deleteReactionsRequest).join(); - // Verify reactions were soft deleted - assertThrows(Exception.class, () -> client.reactions().get(u1.getId()).join()); - assertThrows(Exception.class, () -> client.reactions().get(u2.getId()).join()); - assertThrows(Exception.class, () -> client.reactions().get(u3.getId()).join()); - - // Restore reactions and verify - client.reactions().restore(u1.getId()).join(); - client.reactions().restore(u2.getId()).join(); - - ReactionBatch restoredReactions = client.reactions().getBatch(Arrays.asList(u1.getId(), u2.getId())).join(); - List result = restoredReactions.getReactions(); - - assertEquals(2, result.size()); - assertTrue(result.stream().anyMatch(r -> r.getId().equals(u1.getId()))); - assertTrue(result.stream().anyMatch(r -> r.getId().equals(u2.getId()))); + // Verify reactions can still be fetched + assertNotNull(client.reactions().get(u1.getId()).join()); + assertNotNull(client.reactions().get(u2.getId()).join()); + assertNotNull(client.reactions().get(u3.getId()).join()); } @Test