Skip to content

Commit da635eb

Browse files
committed
chore: delete batch reactions
1 parent 8fed5ae commit da635eb

File tree

4 files changed

+98
-4
lines changed

4 files changed

+98
-4
lines changed

src/main/java/io/getstream/client/Client.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,11 @@ public CompletableFuture<Object> deleteActivities(BatchDeleteActivitiesRequest r
371371
return stream.deleteActivities(token, request);
372372
}
373373

374+
public CompletableFuture<Object> deleteReactions(BatchDeleteReactionsRequest request) throws StreamException {
375+
final Token token = buildDataPrivacyToken(secret, Auth.TokenAction.WRITE);
376+
return stream.deleteReactions(token, request);
377+
}
378+
374379
public CompletableFuture<ExportIDsResponse> exportUserActivities(String userId) throws StreamException {
375380
final Token token = buildDataPrivacyToken(secret, Auth.TokenAction.READ);
376381
return stream.exportUserActivities(token, userId);

src/main/java/io/getstream/core/Stream.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -528,8 +528,8 @@ public CompletableFuture<Response> updateUser(Token token, String userID, Data u
528528

529529
public CompletableFuture<Object> deleteActivities(Token token, BatchDeleteActivitiesRequest request) throws StreamException {
530530
try {
531-
// final URL url = deleteActivitiesURL(baseURL);
532-
final URL url = deleteActivitiesURL(new URL("https://oregon-api.stream-io-api.com"));//$$ need to deploy proxy
531+
final URL url = deleteActivitiesURL(baseURL);
532+
// final URL url = deleteActivitiesURL(new URL("https://oregon-api.stream-io-api.com"));//$$ need to deploy proxy
533533

534534
final byte[] payload = toJSON(request);
535535
io.getstream.core.http.Request httpRequest = buildPost(url, key, token, payload);
@@ -539,14 +539,30 @@ public CompletableFuture<Object> deleteActivities(Token token, BatchDeleteActivi
539539
}
540540
}
541541

542+
public CompletableFuture<Object> deleteReactions(Token token, BatchDeleteReactionsRequest request) throws StreamException {
543+
try {
544+
final URL url = deleteReactionsURL(baseURL);
545+
// final URL url = deleteReactionsURL(new URL("https://oregon-api.stream-io-api.com"));//$$ need to deploy proxy
546+
547+
final byte[] payload = toJSON(request);
548+
io.getstream.core.http.Request httpRequest = buildPost(url, key, token, payload);
549+
550+
//print the response
551+
552+
return httpClient.execute(httpRequest).thenApply(response -> null);
553+
} catch (Exception e) {
554+
throw new StreamException(e);
555+
}
556+
}
557+
542558
public CompletableFuture<ExportIDsResponse> exportUserActivities(Token token, String userId) throws StreamException {
543559
if (userId == null || userId.isEmpty()) {
544560
throw new IllegalArgumentException("User ID can't be null or empty");
545561
}
546562

547563
try {
548-
// final URL url = buildExportIDsURL(baseURL, userId);
549-
final URL url = buildExportIDsURL(new URL("https://oregon-api.stream-io-api.com"), userId);//$$ need to deploy proxy
564+
final URL url = buildExportIDsURL(baseURL, userId);
565+
// final URL url = buildExportIDsURL(new URL("https://oregon-api.stream-io-api.com"), userId);//$$ need to deploy proxy
550566
io.getstream.core.http.Request request = buildGet(url, key, token);
551567
return httpClient
552568
.execute(request)

src/main/java/io/getstream/core/utils/Routes.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public final class Routes {
3030

3131
private static final String exportIDsPath = "data_privacy/export_ids/";
3232
private static final String deleteActivitiesPath = "data_privacy/delete_activities/";
33+
private static final String deleteReactionsPath = "data_privacy/delete_reactions/";
3334

3435
private Routes() {
3536
/* nothing to see here */
@@ -129,6 +130,10 @@ public static URL deleteActivitiesURL(URL baseURL) throws MalformedURLException
129130
return new URL(baseURL, basePath + deleteActivitiesPath);
130131
}
131132

133+
public static URL deleteReactionsURL(URL baseURL) throws MalformedURLException {
134+
return new URL(baseURL, basePath + deleteReactionsPath);
135+
}
136+
132137
public static URL followStatsPath(URL baseURL) throws MalformedURLException {
133138
return new URL(baseURL, basePath + followStatsPath);
134139
}

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

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
import static org.junit.Assert.*;
44

55
import com.google.common.collect.Lists;
6+
import io.getstream.core.http.Response;
67
import io.getstream.core.models.BatchDeleteActivitiesRequest;
78
import io.getstream.core.models.BatchDeleteActivitiesRequest.ActivityToDelete;
89
import io.getstream.core.models.Activity;
10+
import io.getstream.core.models.BatchDeleteReactionsRequest;
11+
import io.getstream.core.models.Reaction;
912
import io.getstream.core.options.Filter;
1013
import io.getstream.core.options.Limit;
1114
import java8.util.concurrent.CompletableFuture;
@@ -83,6 +86,71 @@ public void testDeleteActivities() throws Exception {
8386
assertEquals(0, deletedActivity2.size());
8487
}
8588

89+
@Test
90+
public void testDeleteReactions() throws Exception {
91+
String uuid1 = UUID.randomUUID().toString().replace("-", "");
92+
FlatFeed feed = client.flatFeed("user", uuid1);
93+
94+
// Insert some activities
95+
Activity activity1 = Activity.builder()
96+
.actor("user1")
97+
.verb("post")
98+
.object("object1")
99+
.build();
100+
Activity activity1Res = feed.addActivity(activity1).join();
101+
102+
Activity activity2 = Activity.builder()
103+
.actor("user1")
104+
.verb("like")
105+
.object("object2")
106+
.build();
107+
Activity activity2Res = feed.addActivity(activity2).join();
108+
109+
//add reactions for activity1
110+
Reaction u1=client.reactions().add("user1", "like", activity1Res.getID()).join();
111+
Reaction u2=client.reactions().add("user2", "like", activity1Res.getID()).join();
112+
113+
Reaction u3=client.reactions().add("user1", "like", activity2Res.getID()).join();
114+
Reaction u4=client.reactions().add("user2", "like", activity2Res.getID()).join();
115+
116+
117+
//fetch test reactions
118+
Reaction r1=client.reactions().get(u1.getId()).join();
119+
assertNotNull(r1);
120+
121+
Reaction r2=client.reactions().get(u2.getId()).join();
122+
assertNotNull(r2);
123+
124+
Reaction r3=client.reactions().get(u3.getId()).join();
125+
assertNotNull(r3);
126+
127+
Reaction r4=client.reactions().get(u4.getId()).join();
128+
assertNotNull(r4);
129+
130+
// Create reaction delete request
131+
BatchDeleteReactionsRequest deleteReactionsRequest=
132+
new BatchDeleteReactionsRequest(Arrays.asList
133+
(u1.getId(), u2.getId(), u3.getId()));
134+
135+
136+
client.deleteReactions(deleteReactionsRequest).join();
137+
138+
//fetch test reactions
139+
140+
// DoesNotExistException
141+
assertThrows(Exception.class, () -> {
142+
client.reactions().get(u1.getId()).join();
143+
});
144+
assertThrows(Exception.class, () -> {
145+
client.reactions().get(u2.getId()).join();
146+
});
147+
assertThrows(Exception.class, () -> {
148+
client.reactions().get(u3.getId()).join();
149+
});
150+
151+
152+
}
153+
86154
@Test
87155
public void testDeleteActivitis() throws Exception {
88156

0 commit comments

Comments
 (0)