Skip to content

Commit 818ee94

Browse files
committed
chore: discard_actors
1 parent 90de6fa commit 818ee94

File tree

3 files changed

+123
-1
lines changed

3 files changed

+123
-1
lines changed

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,29 @@ limit, offset, filter, DefaultOptions.DEFAULT_MARKER, new Ranking(ranking), rank
127127
});
128128
}
129129

130+
public CompletableFuture<List<Activity>> getActivities(RequestOption... options)
131+
throws StreamException {
132+
// If no options provided, use defaults
133+
if (options == null || options.length == 0) {
134+
options = new RequestOption[] {
135+
DefaultOptions.DEFAULT_LIMIT,
136+
DefaultOptions.DEFAULT_OFFSET,
137+
DefaultOptions.DEFAULT_FILTER,
138+
DefaultOptions.DEFAULT_MARKER
139+
};
140+
}
141+
142+
return getClient()
143+
.getActivities(getID(), options)
144+
.thenApply(
145+
response -> {
146+
try {
147+
return deserializeContainer(response, Activity.class);
148+
} catch (StreamException | IOException e) {
149+
throw new CompletionException(e);
150+
}
151+
});
152+
}
130153

131154
public <T> CompletableFuture<List<T>> getCustomActivities(Class<T> type) throws StreamException {
132155
return getCustomActivities(
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.getstream.core.options;
2+
3+
import static com.google.common.base.Preconditions.checkNotNull;
4+
5+
import io.getstream.core.http.Request;
6+
import java.util.List;
7+
8+
public final class DiscardActors implements RequestOption {
9+
private final String actors;
10+
private final String separator;
11+
12+
public DiscardActors(String... actors) {
13+
this(actors, ",");
14+
}
15+
16+
public DiscardActors(List<String> actors) {
17+
this(actors, ",");
18+
}
19+
20+
public DiscardActors(String[] actors, String separator) {
21+
checkNotNull(actors, "Actors list cannot be null");
22+
this.actors = String.join(separator != null ? separator : ",", actors);
23+
this.separator = separator;
24+
}
25+
26+
public DiscardActors(List<String> actors, String separator) {
27+
checkNotNull(actors, "Actors list cannot be null");
28+
this.actors = String.join(separator != null ? separator : ",", actors);
29+
this.separator = separator;
30+
}
31+
32+
@Override
33+
public void apply(Request.Builder builder) {
34+
if (actors != null && !actors.isEmpty()) {
35+
builder.addQueryParameter("discard_actors", actors);
36+
if (separator != null && !separator.equals(",")) {
37+
builder.addQueryParameter("discard_actors_sep", separator);
38+
}
39+
}
40+
}
41+
}

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

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
import io.getstream.core.models.Activity;
88
import io.getstream.core.models.Data;
99
import io.getstream.core.models.EnrichedActivity;
10+
import io.getstream.core.options.DiscardActors;
1011
import io.getstream.core.options.EnrichmentFlags;
12+
import io.getstream.core.options.Filter;
13+
import io.getstream.core.options.Limit;
14+
import io.getstream.core.options.Offset;
1115
import java.util.Collections;
1216
import java.util.List;
1317
import java8.util.concurrent.CompletionException;
@@ -101,6 +105,60 @@ public void invalidFeedType() throws Exception {
101105
.build();
102106

103107
FlatFeed feed = client.flatFeed("aggregated", "1");
104-
List<Activity> result = feed.getActivities().join();
108+
feed.getActivities().join();
109+
}
110+
111+
112+
@Test
113+
public void testDiscardActorsOptions() {
114+
// Test DiscardActors with array
115+
DiscardActors discardActors1 = new DiscardActors("user1", "user2", "user3");
116+
117+
// Test DiscardActors with List
118+
List<String> actors = java.util.Arrays.asList("user4", "user5");
119+
DiscardActors discardActors2 = new DiscardActors(actors);
120+
121+
// Test DiscardActors with custom separator
122+
DiscardActors discardActors3 = new DiscardActors(new String[]{"user6", "user7"}, ";");
123+
124+
// Test DiscardActors with List and custom separator
125+
DiscardActors discardActors4 = new DiscardActors(actors, "|");
126+
127+
// Basic validation that objects were created
128+
assert discardActors1 != null;
129+
assert discardActors2 != null;
130+
assert discardActors3 != null;
131+
assert discardActors4 != null;
132+
}
133+
134+
@Test
135+
public void testGetActivitiesWithRequestOptions() throws Exception {
136+
Client client =
137+
Client.builder(apiKey, secret)
138+
.httpClient(new OKHTTPClientAdapter(new OkHttpClient()))
139+
.build();
140+
141+
FlatFeed feed = client.flatFeed("flat", "test-request-options");
142+
143+
// Test with just DiscardActors
144+
DiscardActors discardActors = new DiscardActors("actor1", "actor2", "actor3");
145+
List<Activity> result1 = feed.getActivities(discardActors).join();
146+
assert result1 != null;
147+
148+
// Test with DiscardActors + Limit + Filter
149+
List<String> actors = java.util.Arrays.asList("actor4", "actor5");
150+
DiscardActors discardActors2 = new DiscardActors(actors);
151+
Filter filter = new Filter().refresh();
152+
List<Activity> result2 = feed.getActivities(new Limit(10), filter, discardActors2).join();
153+
assert result2 != null;
154+
155+
// Test with all parameters
156+
List<Activity> result3 = feed.getActivities(
157+
new Limit(20),
158+
new Offset(5),
159+
new Filter().refresh(),
160+
new DiscardActors("actor6", "actor7")
161+
).join();
162+
assert result3 != null;
105163
}
106164
}

0 commit comments

Comments
 (0)