Skip to content

Commit 906412d

Browse files
committed
chore: enriched activity now has moderation response
1 parent 24be30d commit 906412d

File tree

2 files changed

+119
-0
lines changed

2 files changed

+119
-0
lines changed

src/main/java/io/getstream/core/models/EnrichedActivity.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ public class EnrichedActivity {
3535
private final Map<String, List<Reaction>> ownReactions;
3636
private final Map<String, List<Reaction>> latestReactions;
3737
private final Map<String, Object> extra;
38+
private final String moderationTemplate;
39+
private final ModerationResponse moderationResponse;
3840

3941
private EnrichedActivity(Builder builder) {
4042
id = builder.id;
@@ -51,6 +53,8 @@ private EnrichedActivity(Builder builder) {
5153
ownReactions = builder.ownReactions;
5254
latestReactions = builder.latestReactions;
5355
extra = builder.extra;
56+
moderationTemplate = builder.moderationTemplate;
57+
moderationResponse = builder.moderationResponse;
5458
}
5559

5660
public String getID() {
@@ -114,6 +118,16 @@ public Map<String, List<Reaction>> getLatestReactions() {
114118
return latestReactions;
115119
}
116120

121+
@JsonProperty("moderation")
122+
public ModerationResponse getModerationResponse() {
123+
return moderationResponse;
124+
}
125+
126+
@JsonProperty("moderation_template")
127+
public String getModerationTemplate() {
128+
return moderationTemplate;
129+
}
130+
117131
@JsonAnyGetter
118132
public Map<String, Object> getExtra() {
119133
return extra;
@@ -158,6 +172,8 @@ public String toString() {
158172
.add("ownReactions", this.ownReactions)
159173
.add("latestReactions", this.latestReactions)
160174
.add("reactionCounts", this.reactionCounts)
175+
.add("moderationTemplate", this.moderationTemplate)
176+
.add("moderationResponse", this.moderationResponse)
161177
.add("extra", this.extra)
162178
.toString();
163179
}
@@ -182,6 +198,8 @@ public static final class Builder {
182198
private Map<String, List<Reaction>> ownReactions;
183199
private Map<String, List<Reaction>> latestReactions;
184200
private Map<String, Object> extra;
201+
private String moderationTemplate;
202+
private ModerationResponse moderationResponse;
185203

186204
public Builder id(String id) {
187205
this.id = id;
@@ -294,6 +312,18 @@ public Builder reactionCounts(Map<String, Number> reactionCounts) {
294312
return this;
295313
}
296314

315+
@JsonProperty("moderation_template")
316+
public Builder moderationTemplate(String moderationTemplate) {
317+
this.moderationTemplate = moderationTemplate;
318+
return this;
319+
}
320+
321+
@JsonProperty("moderation")
322+
public Builder moderationResponse(ModerationResponse moderationResponse) {
323+
this.moderationResponse = moderationResponse;
324+
return this;
325+
}
326+
297327
@JsonAnySetter
298328
public Builder extraField(String key, Object value) {
299329
if (extra == null) {
@@ -326,6 +356,8 @@ public Builder fromEnrichedActivity(EnrichedActivity activity) {
326356
this.ownReactions = activity.ownReactions;
327357
this.latestReactions = activity.latestReactions;
328358
this.reactionCounts = activity.reactionCounts;
359+
this.moderationTemplate = activity.moderationTemplate;
360+
this.moderationResponse = activity.moderationResponse;
329361
this.extra = activity.extra;
330362
return this;
331363
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package io.getstream.client;
2+
3+
import static org.junit.Assert.*;
4+
5+
import io.getstream.core.http.OKHTTPClientAdapter;
6+
import io.getstream.core.models.*;
7+
import io.getstream.core.options.EnrichmentFlags;
8+
import java.util.Date;
9+
import java.util.List;
10+
import okhttp3.OkHttpClient;
11+
import org.junit.Before;
12+
import org.junit.Test;
13+
14+
public class EnrichedActivityModerationIT {
15+
16+
private static final String apiKey =
17+
System.getenv("STREAM_KEY") != null
18+
? System.getenv("STREAM_KEY")
19+
: System.getProperty("STREAM_KEY");
20+
private static final String secret =
21+
System.getenv("STREAM_SECRET") != null
22+
? System.getenv("STREAM_SECRET")
23+
: System.getProperty("STREAM_SECRET");
24+
25+
private Client client;
26+
27+
@Before
28+
public void setUp() throws Exception {
29+
client =
30+
Client.builder(apiKey, secret)
31+
.httpClient(new OKHTTPClientAdapter(new OkHttpClient()))
32+
.build();
33+
}
34+
35+
@Test
36+
public void testEnrichedActivityModerationFields() throws Exception {
37+
// Create a feed to work with
38+
FlatFeed feed = client.flatFeed("user", "test-moderation123");
39+
40+
// Create an activity with moderation template and text that should trigger moderation
41+
Activity activity =
42+
Activity.builder()
43+
.actor("test-user")
44+
.verb("post")
45+
.object("test-object")
46+
.moderationTemplate("moderation_template_activity")
47+
.extraField("text", "good-text") // Using the term that triggers moderation in ModerationClientTest
48+
.foreignID("test-" + System.currentTimeMillis())
49+
.time(new Date())
50+
.build();
51+
52+
// Add activity to feed
53+
Activity addedActivity = feed.addActivity(activity).join();
54+
assertNotNull(addedActivity);
55+
56+
// Verify the Activity has moderation fields
57+
ModerationResponse activityModeration = addedActivity.getModerationResponse();
58+
assertNotNull(activityModeration);
59+
assertEquals("complete", activityModeration.getStatus());
60+
assertEquals("keep", activityModeration.getRecommendedAction());
61+
62+
// Get enriched activities to verify moderation fields are included
63+
List<EnrichedActivity> enrichedActivities =
64+
feed.getEnrichedActivities(new EnrichmentFlags()).join();
65+
66+
// Find our activity in the list
67+
EnrichedActivity enrichedActivity = null;
68+
for (EnrichedActivity ea : enrichedActivities) {
69+
if (ea.getID().equals(addedActivity.getID())) {
70+
enrichedActivity = ea;
71+
break;
72+
}
73+
}
74+
75+
assertNotNull("Could not find the added activity in enriched activities", enrichedActivity);
76+
77+
// Verify the EnrichedActivity has moderation fields
78+
ModerationResponse enrichedModeration = enrichedActivity.getModerationResponse();
79+
assertNotNull("EnrichedActivity should have moderation fields", enrichedModeration);
80+
assertEquals("complete", enrichedModeration.getStatus());
81+
assertEquals("keep", enrichedModeration.getRecommendedAction());
82+
assertEquals("moderation_template_activity", enrichedActivity.getModerationTemplate());
83+
84+
// Clean up
85+
feed.removeActivityByID(addedActivity.getID()).join();
86+
}
87+
}

0 commit comments

Comments
 (0)