diff --git a/src/IReactions.cs b/src/IReactions.cs index 01d5668..22fe1fe 100644 --- a/src/IReactions.cs +++ b/src/IReactions.cs @@ -21,10 +21,18 @@ public interface IReactions /// https://getstream.io/activity-feeds/docs/dotnet-csharp/reactions_introduction/?language=csharp Task AddAsync(string kind, string activityId, string userId, IDictionary data = null, IEnumerable targetFeeds = null); + /// Adds a new child reaction. + /// https://getstream.io/activity-feeds/docs/dotnet-csharp/reactions_introduction/?language=csharp + Task AddChildAsync(string parentId, string reactionId, string kind, string userId, IDictionary data = null, IEnumerable targetFeeds = null); + /// Adds a new child reaction. /// https://getstream.io/activity-feeds/docs/dotnet-csharp/reactions_introduction/?language=csharp Task AddChildAsync(Reaction parent, string reactionId, string kind, string userId, IDictionary data = null, IEnumerable targetFeeds = null); + /// Adds a new child reaction. + /// https://getstream.io/activity-feeds/docs/dotnet-csharp/reactions_introduction/?language=csharp + Task AddChildAsync(string parentId, string kind, string userId, IDictionary data = null, IEnumerable targetFeeds = null); + /// Adds a new child reaction. /// https://getstream.io/activity-feeds/docs/dotnet-csharp/reactions_introduction/?language=csharp Task AddChildAsync(Reaction parent, string kind, string userId, IDictionary data = null, IEnumerable targetFeeds = null); diff --git a/src/Reactions.cs b/src/Reactions.cs index 129c3bf..353ee69 100644 --- a/src/Reactions.cs +++ b/src/Reactions.cs @@ -43,10 +43,16 @@ public async Task AddAsync(string reactionId, string kind, string acti public async Task AddChildAsync(Reaction parent, string kind, string userId, IDictionary data = null, IEnumerable targetFeeds = null) { - return await AddChildAsync(parent, null, kind, userId, data, targetFeeds); + return await AddChildAsync(parent.Id, null, kind, userId, data, targetFeeds); } - public async Task AddChildAsync(Reaction parent, string reactionId, string kind, string userId, + public async Task AddChildAsync(string parentId, string kind, string userId, + IDictionary data = null, IEnumerable targetFeeds = null) + { + return await AddChildAsync(parentId, null, kind, userId, data, targetFeeds); + } + + public async Task AddChildAsync(string parentId, string reactionId, string kind, string userId, IDictionary data = null, IEnumerable targetFeeds = null) { var r = new Reaction() @@ -55,13 +61,19 @@ public async Task AddChildAsync(Reaction parent, string reactionId, st Kind = kind, UserId = userId, Data = data, - ParentId = parent.Id, + ParentId = parentId, TargetFeeds = targetFeeds, }; return await AddAsync(r); } + public async Task AddChildAsync(Reaction parent, string reactionId, string kind, string userId, + IDictionary data = null, IEnumerable targetFeeds = null) + { + return await AddChildAsync(parent.Id, reactionId, kind, userId, data, targetFeeds); + } + public async Task GetAsync(string reactionId) { var request = _client.BuildAppRequest($"reaction/{reactionId}/", HttpMethod.Get); diff --git a/tests/ReactionTests.cs b/tests/ReactionTests.cs index aaffcde..cc9be66 100644 --- a/tests/ReactionTests.cs +++ b/tests/ReactionTests.cs @@ -74,7 +74,7 @@ public async Task TestReactions() // Add children var c1 = await Client.Reactions.AddChildAsync(r, "upvote", "tommy"); var c2 = await Client.Reactions.AddChildAsync(r, "downvote", "timmy"); - var c3 = await Client.Reactions.AddChildAsync(r, "upvote", "jimmy"); + var c3 = await Client.Reactions.AddChildAsync(r.Id, "upvote", "jimmy"); var parent = await Client.Reactions.GetAsync(r.Id); @@ -125,7 +125,7 @@ public async Task TestReactionPagination() var r3 = await Client.Reactions.AddAsync("like", activity.Id, "bob", data); var r4 = await Client.Reactions.AddChildAsync(r3, "upvote", "tom", data); - var r5 = await Client.Reactions.AddChildAsync(r3, Guid.NewGuid().ToString(), "upvote", "mary", data); + var r5 = await Client.Reactions.AddChildAsync(r3.Id, Guid.NewGuid().ToString(), "upvote", "mary", data); // activity id var filter = ReactionFiltering.Default; @@ -205,4 +205,4 @@ public async Task TestReactionPagination() Assert.AreEqual(r5.UserId, actual.UserId); } } -} \ No newline at end of file +}