diff --git a/src/IReactions.cs b/src/IReactions.cs
index 3abb40e..971b766 100644
--- a/src/IReactions.cs
+++ b/src/IReactions.cs
@@ -59,6 +59,6 @@ public interface IReactions
/// Updates a reaction.
/// https://getstream.io/activity-feeds/docs/dotnet-csharp/reactions_introduction/?language=csharp
- Task UpdateAsync(string reactionId, IDictionary data = null, IEnumerable targetFeeds = null);
+ Task UpdateAsync(string reactionId, IDictionary data = null, IEnumerable targetFeeds = null, string moderationTemplate = null);
}
}
\ No newline at end of file
diff --git a/src/Reactions.cs b/src/Reactions.cs
index 0dbc0e3..52e3f1f 100644
--- a/src/Reactions.cs
+++ b/src/Reactions.cs
@@ -130,13 +130,14 @@ private async Task FilterInternalAsync(ReactionFiltering filtering
return response;
}
- public async Task UpdateAsync(string reactionId, IDictionary data = null, IEnumerable targetFeeds = null)
+ public async Task UpdateAsync(string reactionId, IDictionary data = null, IEnumerable targetFeeds = null, string moderationTemplate = null)
{
var r = new Reaction
{
Id = reactionId,
Data = data,
TargetFeeds = targetFeeds,
+ ModerationTemplate = moderationTemplate,
};
var request = _client.BuildAppRequest($"reaction/{reactionId}/", HttpMethod.Put);
diff --git a/tests/ModerationTests.cs b/tests/ModerationTests.cs
index 479c440..4effff3 100644
--- a/tests/ModerationTests.cs
+++ b/tests/ModerationTests.cs
@@ -63,6 +63,30 @@ public async Task TestReactionModeration()
Assert.AreEqual("complete", response.Status);
Assert.AreEqual("remove", response.RecommendedAction);
+
+ var updatedData = new Dictionary() { { "field", "updated" }, { "number", 3 }, { "text", "pissoar" }, };
+ var updatedReaction = await Client.Reactions.UpdateAsync(r.Id, updatedData, null, "moderation_config_1_reaction");
+
+ Assert.NotNull(updatedReaction);
+ Assert.AreEqual(updatedReaction.Id, r.Id);
+ Assert.AreEqual(updatedReaction.Data["field"], "updated");
+ Assert.AreEqual(updatedReaction.Data["number"], 3);
+
+ var updatedResponse = updatedReaction.GetModerationResponse();
+ Assert.AreEqual("complete", updatedResponse.Status);
+ Assert.AreEqual("remove", updatedResponse.RecommendedAction);
+
+ var updatedData2 = new Dictionary() { { "field", "updated" }, { "number", 3 }, { "text", "hello" }, };
+ var updatedReaction2 = await Client.Reactions.UpdateAsync(r.Id, updatedData2, null, "moderation_config_1_reaction");
+
+ Assert.NotNull(updatedReaction2);
+ Assert.AreEqual(updatedReaction2.Id, r.Id);
+ Assert.AreEqual(updatedReaction2.Data["field"], "updated");
+ Assert.AreEqual(updatedReaction2.Data["number"], 3);
+
+ var updatedResponse2 = updatedReaction2.GetModerationResponse();
+ Assert.AreEqual("complete", updatedResponse2.Status);
+ Assert.AreEqual("remove", updatedResponse2.RecommendedAction);
}
[Test]
@@ -132,4 +156,4 @@ public async Task TestFlagReaction()
Assert.NotNull(response);
}
}
-}
\ No newline at end of file
+}