diff --git a/src/main/java/io/getstream/client/ModerationClient.java b/src/main/java/io/getstream/client/ModerationClient.java index c44aabc2..f579eb65 100644 --- a/src/main/java/io/getstream/client/ModerationClient.java +++ b/src/main/java/io/getstream/client/ModerationClient.java @@ -1,5 +1,6 @@ package io.getstream.client; +import static io.getstream.core.utils.Auth.buildModerationToken; import static io.getstream.core.utils.Auth.buildReactionsToken; import static io.getstream.core.utils.Routes.*; import static io.getstream.core.utils.Serialization.*; @@ -22,30 +23,30 @@ public class ModerationClient { } public CompletableFuture flagUser( - String flaggedUserId, String reason, Map options) throws StreamException { - return flag("stream:user", flaggedUserId, "", reason, options); + String flaggedUserId,String reportingUser, String reason, Map options) throws StreamException { + return flag("stream:user", flaggedUserId, reportingUser, reason, options); } public CompletableFuture flagActivity( - String entityId, String entityCreatorId, String reason, Map options) + String entityId, String reportingUser, String reason, Map options) throws StreamException { - return flag("stream:feeds:v2:activity", entityId, entityCreatorId, reason, options); + return flag("stream:feeds:v2:activity", entityId, reportingUser, reason, options); } public CompletableFuture flagReaction( - String entityId, String entityCreatorId, String reason, Map options) + String entityId, String reportingUser, String reason, Map options) throws StreamException { - return flag("stream:feeds:v2:reaction", entityId, entityCreatorId, reason, options); + return flag("stream:feeds:v2:reaction", entityId, reportingUser, reason, options); } private CompletableFuture flag( String entityType, String entityId, - String entityCreatorId, + String reportingUser, String reason, Map options) throws StreamException { - final Token token = buildReactionsToken(secret, Auth.TokenAction.WRITE); - return mod.flag(token, entityType, entityId, entityCreatorId, reason, options); + final Token token = buildModerationToken(secret, Auth.TokenAction.WRITE); + return mod.flag(token, entityType, entityId, reportingUser, reason, options); } } diff --git a/src/main/java/io/getstream/core/Moderation.java b/src/main/java/io/getstream/core/Moderation.java index d607774e..01ae12cb 100644 --- a/src/main/java/io/getstream/core/Moderation.java +++ b/src/main/java/io/getstream/core/Moderation.java @@ -31,18 +31,18 @@ public CompletableFuture flag( Token token, String entityType, String entityId, - String entityCreatorId, - String reason, + String reportingUser, + String Reason, Map options) throws StreamException { try { final byte[] payload = toJSON( new Object() { - public final String UserId = entityCreatorId; - public final String EntityType = entityType; - public final String EntityId = entityId; - public final String Reason = reason; + public final String user_id = reportingUser; + public final String entity_type = entityType; + public final String entity_id = entityId; + public final String reason = Reason; }); final URL url = buildModerationFlagURL(baseURL); diff --git a/src/main/java/io/getstream/core/utils/Auth.java b/src/main/java/io/getstream/core/utils/Auth.java index a1527ab2..3fdcada3 100644 --- a/src/main/java/io/getstream/core/utils/Auth.java +++ b/src/main/java/io/getstream/core/utils/Auth.java @@ -41,7 +41,8 @@ public enum TokenResource { OPEN_GRAPH("url"), PERSONALIZATION("personalization"), REACTIONS("reactions"), - USERS("users"); + USERS("users"), + MODERATION("moderation"); private final String resource; @@ -98,6 +99,10 @@ public static Token buildReactionsToken(String secret, TokenAction action) { return buildBackendToken(secret, TokenResource.REACTIONS, action, "*"); } + public static Token buildModerationToken(String secret, TokenAction action) { + return buildBackendToken(secret, TokenResource.MODERATION, action, "*"); + } + public static Token buildAnalyticsToken(String secret, TokenAction action) { return buildBackendToken(secret, TokenResource.ANALYTICS, action, "*"); } diff --git a/src/test/java/io/getstream/client/ModerationClientTest.java b/src/test/java/io/getstream/client/ModerationClientTest.java index e57cbc2e..75899094 100644 --- a/src/test/java/io/getstream/client/ModerationClientTest.java +++ b/src/test/java/io/getstream/client/ModerationClientTest.java @@ -5,6 +5,8 @@ import io.getstream.core.http.Response; import io.getstream.core.models.*; import io.getstream.core.models.Activity; + +import java.sql.Time; import java.util.Date; import java.util.UUID; import org.junit.*; @@ -28,49 +30,51 @@ public void setUp() throws Exception { } @Test - public void testFlagUser() throws Exception { - + public void testFlagActivity() throws Exception { ModerationClient moderationClient = client.moderation(); - String userId = UUID.randomUUID().toString(); - User user = client.user(userId); - user.getOrCreate().join(); - Data result = user.get().join(); + Activity activity = Activity.builder().actor("bad-user").verb("test").object("test").moderationTemplate("moderation_template_activity").time(new Date()).foreignID("fid").build(); + Activity activityResponse = client.flatFeed("user", "1").addActivity(activity).join(); - Response flagResponse = moderationClient.flagUser(userId, "blood", null).join(); + String reportingUser="reporting-user"; + Activity activity1 = Activity.builder().actor(reportingUser).verb("verb").object("test").moderationTemplate("moderation_template_activity").time(new Date()).foreignID("fid").build(); + Activity activityResponse1 = client.flatFeed("user", "1").addActivity(activity1).join(); + assertNotNull(activityResponse); + + Response flagResponse = + moderationClient.flagActivity(activityResponse.getID(), reportingUser, "blood", null).join(); assertNotNull(flagResponse); + assertEquals(201, flagResponse.getCode()); } @Test - public void testFlagActivity() throws Exception { - ModerationClient moderationClient = client.moderation(); - - Activity activity = Activity.builder().actor("test").verb("test").object("test").build(); + public void testFlagUser() throws Exception { - Activity activityResponse = client.flatFeed("flat", "1").addActivity(activity).join(); - assertNotNull(activityResponse); + ModerationClient moderationClient = client.moderation(); - Response flagResponse = - moderationClient.flagActivity(activityResponse.getID(), "vishal", "blood", null).join(); + Response flagResponse = moderationClient.flagUser("bad-user", "reporting-user", "blood", null).join(); assertNotNull(flagResponse); + assertEquals(201, flagResponse.getCode()); } @Test public void testFlagReaction() throws Exception { ModerationClient moderationClient = client.moderation(); - Activity activity = Activity.builder().actor("test").verb("test").object("test").build(); + Activity activity = Activity.builder().actor("bad-user").verb("test").object("test").moderationTemplate("moderation_template_reaction").time(new Date()).foreignID("fid").build(); Activity activityResponse = client.flatFeed("flat", "1").addActivity(activity).join(); assertNotNull(activityResponse); Reaction reactionResponse = - client.reactions().add("user123", "like", activityResponse.getID()).join(); + client.reactions().add("bad-user", "like", activityResponse.getID()).join(); assertNotNull(reactionResponse); Response flagResponse = - moderationClient.flagReaction(reactionResponse.getId(), "bobby", "blood", null).join(); + moderationClient.flagReaction(reactionResponse.getId(), "reporting-user", "blood", null).join(); assertNotNull(flagResponse); + assertEquals(201, flagResponse.getCode()); + } @Test