Skip to content

Commit 25a178d

Browse files
committed
chore: add support for discard_deleted_activities
1 parent da3c48d commit 25a178d

File tree

2 files changed

+80
-5
lines changed

2 files changed

+80
-5
lines changed

src/main/java/io/getstream/core/options/Filter.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ enum OpType {
1010
ID_GREATER_THAN("id_gt"),
1111
ID_LESS_THAN_OR_EQUAL("id_lte"),
1212
ID_LESS_THAN("id_lt"),
13-
REFRESH("refresh");
13+
REFRESH("refresh"),
14+
DISCARD_DELETED_ACTIVITIES("discard_deleted_activities");
1415

1516
private String operator;
1617

@@ -46,6 +47,11 @@ public Filter idGreaterThanEqual(String id) {
4647
return this;
4748
}
4849

50+
public Filter discardDeletedActivities() {
51+
ops.add(new OpEntry(OpType.DISCARD_DELETED_ACTIVITIES, "true"));
52+
return this;
53+
}
54+
4955
public Filter idLessThan(String id) {
5056
ops.add(new OpEntry(OpType.ID_LESS_THAN, id));
5157
return this;

src/test/java/io/getstream/client/BatchDeleteActivitiesTest.java

Lines changed: 73 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,22 @@
22

33
import static org.junit.Assert.*;
44

5+
import com.google.common.collect.Lists;
56
import io.getstream.core.BatchDeleteActivities;
67
import io.getstream.core.http.HTTPClient;
78
import io.getstream.core.models.BatchDeleteActivitiesRequest;
89
import io.getstream.core.models.BatchDeleteActivitiesRequest.ActivityToDelete;
910
import io.getstream.core.models.Activity;
11+
import io.getstream.core.models.FeedID;
12+
import io.getstream.core.options.Filter;
13+
import io.getstream.core.options.Limit;
1014
import java8.util.concurrent.CompletableFuture;
1115
import org.junit.*;
1216

1317
import java.net.URL;
1418
import java.util.Arrays;
1519
import java.util.List;
20+
import java.util.UUID;
1621

1722
public class BatchDeleteActivitiesTest {
1823

@@ -35,26 +40,28 @@ public void setUp() throws Exception {
3540
@Test
3641
public void testDeleteActivities() throws Exception {
3742
BatchDeleteActivitiesClient batchDeleteClient = client.batchDeleteActivities();
43+
String uuid1 = UUID.randomUUID().toString().replace("-", "");
44+
FlatFeed feed = client.flatFeed("flat", uuid1);
3845

3946
// Insert some activities
4047
Activity activity1 = Activity.builder()
4148
.actor("user1")
4249
.verb("post")
4350
.object("object1")
4451
.build();
45-
Activity activity1Res = client.flatFeed("user", "user1").addActivity(activity1).join();
52+
Activity activity1Res = feed.addActivity(activity1).join();
4653

4754
Activity activity2 = Activity.builder()
4855
.actor("user1")
4956
.verb("like")
5057
.object("object2")
5158
.build();
52-
Activity activity2Res = client.flatFeed("user", "user1").addActivity(activity2).join();
59+
Activity activity2Res = feed.addActivity(activity2).join();
5360

5461
// Create delete request
5562
List<ActivityToDelete> activities = Arrays.asList(
56-
new ActivityToDelete(activity1Res.getID(), Arrays.asList("user1")),
57-
new ActivityToDelete(activity2Res.getID(), Arrays.asList("user1"))
63+
new ActivityToDelete(activity1Res.getID(), Arrays.asList("user:user1", "user:alice")),
64+
new ActivityToDelete(activity2Res.getID(), Arrays.asList("user:user1"))
5865
);
5966
BatchClient clientBatch = Client.builder(apiKey, secret).build().batch();
6067

@@ -80,4 +87,66 @@ public void testDeleteActivities() throws Exception {
8087
List<Activity> deletedActivity2 = clientBatch.getActivitiesByID(activity2Res.getID()).join();
8188
assertEquals(0, deletedActivity2.size());
8289
}
90+
91+
@Test
92+
public void testDeleteActivitis() throws Exception {
93+
BatchDeleteActivitiesClient batchDeleteClient = client.batchDeleteActivities();
94+
95+
// Insert some activities
96+
String uuid1 = UUID.randomUUID().toString().replace("-", "");
97+
String uuid2 = UUID.randomUUID().toString().replace("-", "");
98+
99+
FlatFeed feed = client.flatFeed("flat", uuid1);
100+
FlatFeed feedAlice = client.flatFeed("flat", uuid2);
101+
Activity activity1 = Activity.builder()
102+
.actor("user1")
103+
.verb("post")
104+
.to(Lists.newArrayList(feedAlice.getID()))
105+
.object("object1")
106+
.build();
107+
Activity activity1Res = feed.addActivity(activity1).join();
108+
109+
Activity activity2 = Activity.builder()
110+
.actor("user1")
111+
.verb("like")
112+
.to(Lists.newArrayList(feedAlice.getID()))
113+
.object("object2")
114+
.build();
115+
Activity activity2Res = feed.addActivity(activity2).join();
116+
117+
// Verify activities are inserted
118+
List<Activity> activities =feed.getActivities(
119+
new Limit(69), new Filter()).join();
120+
assertEquals(2, activities.size());
121+
122+
// Create delete request
123+
List<ActivityToDelete> activitiesToDelete = Arrays.asList(
124+
new ActivityToDelete(activity1Res.getID(), Arrays.asList(feed.getID().toString())),
125+
new ActivityToDelete(activity2Res.getID(), Arrays.asList(feedAlice.getID().toString()))
126+
);
127+
BatchDeleteActivitiesRequest request = new BatchDeleteActivitiesRequest(activitiesToDelete);
128+
CompletableFuture<Object> future = batchDeleteClient.deleteActivities(request);
129+
future.join();
130+
131+
132+
// Verify activities are deleted by fetching by ID
133+
BatchClient clientBatch = Client.builder(apiKey, secret).build().batch();
134+
List<Activity> deletedActivity1 = clientBatch.getActivitiesByID(activity1Res.getID()).join();
135+
assertEquals(0, deletedActivity1.size());
136+
137+
// read feeds
138+
// without discardDeletedActivities
139+
activities =feed.getActivities(
140+
new Limit(69), new Filter()).join();
141+
assertEquals(2, activities.size());
142+
143+
144+
activities =feed.getActivities(
145+
new Limit(10), new Filter().discardDeletedActivities()).join();
146+
assertEquals(0, activities.size());
147+
148+
activities =feedAlice.getActivities(
149+
new Limit(10), new Filter().discardDeletedActivities()).join();
150+
assertEquals(1, activities.size());
151+
}
83152
}

0 commit comments

Comments
 (0)