Skip to content

Commit 22e3492

Browse files
committed
chore: reactionFilters add filterUserID
1 parent 2299356 commit 22e3492

4 files changed

Lines changed: 59 additions & 11 deletions

File tree

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ public CompletableFuture<List<Reaction>> filter(LookupKind lookup, String id)
3838
return filter(lookup, id, DefaultOptions.DEFAULT_FILTER, DefaultOptions.DEFAULT_LIMIT, "");
3939
}
4040

41+
public CompletableFuture<List<Reaction>> filter(
42+
LookupKind lookup, String id, Filter filter, Limit limit, String kind, Boolean withOwnChildren, String filterUserID)
43+
throws StreamException {
44+
final Token token = buildReactionsToken(secret, TokenAction.READ);
45+
return reactions.filter(token, lookup, id, filter, limit, kind, withOwnChildren, filterUserID);
46+
}
47+
4148
public CompletableFuture<List<Reaction>> filter(LookupKind lookup, String id, Limit limit)
4249
throws StreamException {
4350
return filter(lookup, id, DefaultOptions.DEFAULT_FILTER, limit, "");
@@ -74,7 +81,7 @@ public CompletableFuture<List<Reaction>> filter(
7481
LookupKind lookup, String id, Filter filter, Limit limit, String kind, Boolean withOwnChildren)
7582
throws StreamException {
7683
final Token token = buildReactionsToken(secret, TokenAction.READ);
77-
return reactions.filter(token, lookup, id, filter, limit, kind, withOwnChildren);
84+
return reactions.filter(token, lookup, id, filter, limit, kind, withOwnChildren, "");
7885
}
7986

8087
public CompletableFuture<Paginated<Reaction>> paginatedFilter(LookupKind lookup, String id)

src/main/java/io/getstream/cloud/CloudReactionsClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ private CompletableFuture<List<Reaction>> filter(Params params) throws StreamExc
101101
params.getFilter(),
102102
params.getLimit(),
103103
params.getKind(),
104-
params.getWithOwnChildren());
104+
params.getWithOwnChildren(), "");
105105
}
106106

107107
public CompletableFuture<Reaction> add(

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

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,18 @@ public CompletableFuture<Paginated> getPaginated(Token token, String id) throws
8787
public CompletableFuture<List<Reaction>> filter(
8888
Token token, LookupKind lookup, String id, Filter filter, Limit limit, String kind)
8989
throws StreamException {
90-
return filter(token, lookup, id, filter, limit, kind, null);
90+
return filter(token, lookup, id, filter, limit, kind, null, "");
9191
}
9292

9393
public CompletableFuture<List<Reaction>> filter(
94-
Token token,
95-
LookupKind lookup,
96-
String id,
97-
Filter filter,
98-
Limit limit,
99-
String kind,
100-
Boolean withOwnChildren)
94+
Token token,
95+
LookupKind lookup,
96+
String id,
97+
Filter filter,
98+
Limit limit,
99+
String kind,
100+
Boolean withOwnChildren,
101+
String filterUserId)
101102
throws StreamException {
102103
checkNotNull(lookup, "Lookup kind can't be null");
103104
checkNotNull(id, "Reaction ID can't be null");
@@ -113,8 +114,12 @@ public CompletableFuture<List<Reaction>> filter(
113114
RequestOption ownChildren =
114115
new CustomQueryParameter(
115116
"withOwnChildren", Boolean.toString(withOwnChildren != null && withOwnChildren));
117+
RequestOption filterByUser =
118+
new CustomQueryParameter(
119+
"filter_user_id", filterUserId);
120+
116121
return httpClient
117-
.execute(buildGet(url, key, token, filter, limit, withActivityData, ownChildren))
122+
.execute(buildGet(url, key, token, filter, limit, withActivityData, ownChildren, filterByUser))
118123
.thenApply(
119124
response -> {
120125
try {

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@
66
import io.getstream.core.models.Paginated;
77
import io.getstream.core.models.Reaction;
88
import java.util.List;
9+
10+
import io.getstream.core.options.Filter;
11+
import io.getstream.core.options.Limit;
912
import org.junit.Test;
1013

14+
import static org.junit.Assert.assertEquals;
15+
1116
public class ReactionsClientTest {
1217
private static final String apiKey =
1318
System.getenv("STREAM_KEY") != null
@@ -49,6 +54,37 @@ public void filter() throws Exception {
4954
.join();
5055
}
5156

57+
@Test
58+
public void filterWithUserID() throws Exception {
59+
Client client = Client.builder(apiKey, secret).build();
60+
61+
Activity activity =
62+
client
63+
.flatFeed("flat", "reactor")
64+
.addActivity(Activity.builder().actor("this").verb("done").object("that").build())
65+
.join();
66+
67+
client.reactions().add("user1", "like", activity.getID()).join();
68+
client.reactions().add("user1", "comment", activity.getID()).join();
69+
client.reactions().add("user1", "share", activity.getID()).join();
70+
client.reactions().add("user2", "like", activity.getID()).join();
71+
client.reactions().add("user2", "comment", activity.getID()).join();
72+
client.reactions().add("user3", "comment", activity.getID()).join();
73+
74+
List<Reaction> result = client.reactions().filter(LookupKind.ACTIVITY, activity.getID(), new Filter(), new Limit(10), "",false, "user1").join();
75+
assertEquals(3, result.size());
76+
77+
result = client.reactions().filter(LookupKind.ACTIVITY, activity.getID(), new Filter(), new Limit(10), "like",false, "user1").join();
78+
assertEquals(1, result.size());
79+
80+
81+
result = client.reactions().filter(LookupKind.ACTIVITY, activity.getID(), new Filter(), new Limit(10), "",false, "user2").join();
82+
assertEquals(2, result.size());
83+
84+
result = client.reactions().filter(LookupKind.ACTIVITY, activity.getID(), new Filter(), new Limit(10), "",false, "user3").join();
85+
assertEquals(1, result.size());
86+
}
87+
5288
@Test
5389
public void pagedFilter() throws Exception {
5490
Client client = Client.builder(apiKey, secret).build();

0 commit comments

Comments
 (0)