Skip to content

Commit 7da61ee

Browse files
authored
feat: small enhancement (#60)
1 parent 612fa63 commit 7da61ee

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

src/stream-net-tests/BatchTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,15 @@ public void TestGetActivitiesArgumentValidation()
3030
}
3131

3232
[Test]
33-
34-
public void TestGetEnrichedFlatActivitiesArgumentValidation()
33+
public void TestGetEnrichedActivitiesArgumentValidation()
3534
{
3635
Assert.ThrowsAsync<ArgumentException>(async () =>
3736
{
38-
var activities = await this._client.Batch.GetEnrichedFlatActivities();
37+
var activities = await this._client.Batch.GetEnrichedActivities(ids: null);
3938
});
4039
Assert.ThrowsAsync<ArgumentException>(async () =>
4140
{
42-
var activities = await this._client.Batch.GetEnrichedFlatActivities(new string[1], foreignIDTimes: new Stream.ForeignIDTime[1]);
41+
var activities = await this._client.Batch.GetEnrichedActivities(foreignIDTimes: null);
4342
});
4443
}
4544

src/stream-net-tests/IntegrationTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1470,7 +1470,7 @@ public async Task TestGetEnrichedFlatActivitiesByID()
14701470
response = await this._flat3.AddActivity(newActivity3);
14711471
addedActivities.Add(response);
14721472

1473-
var activities = await this._client.Batch.GetEnrichedFlatActivities(addedActivities.Select(a => a.Id));
1473+
var activities = await this._client.Batch.GetEnrichedActivities(addedActivities.Select(a => a.Id));
14741474
Assert.IsNotNull(activities);
14751475
Assert.AreEqual(addedActivities.Count, activities.Count());
14761476

@@ -1504,9 +1504,9 @@ public async Task TestGetEnrichedFlatActivitiesByIDWithReactions()
15041504

15051505
await _client.Reactions.Add("upvote", newActivity.Id, user.ID, new Dictionary<string, object> { ["reactionProp"] = "reactionPropValue" });
15061506

1507-
var activities = await this._client.Batch.GetEnrichedFlatActivities(
1507+
var activities = await this._client.Batch.GetEnrichedActivities(
15081508
new[] { newActivity.Id },
1509-
reactions: ReactionOption.With().Counts().Recent());
1509+
new GetOptions().WithReaction(ReactionOption.With().Counts().Recent()));
15101510

15111511
Assert.IsNotNull(activities);
15121512
Assert.AreEqual(1, activities.Count());

src/stream-net/BatchOperations.cs

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -135,30 +135,41 @@ public async Task<IEnumerable<Activity>> GetActivities(IEnumerable<string> ids =
135135
throw StreamException.FromResponse(response);
136136
}
137137

138-
public async Task<IEnumerable<EnrichedActivity>> GetEnrichedFlatActivities(IEnumerable<string> ids = null, ReactionOption reactions = null, IEnumerable<ForeignIDTime> foreignIDTimes = null)
138+
public async Task<IEnumerable<EnrichedActivity>> GetEnrichedActivities(IEnumerable<string> ids, GetOptions options = null)
139139
{
140-
if (ids == null && foreignIDTimes == null)
141-
throw new ArgumentException("one of the parameters ids or foreignIdTimes must be provided and not null", "ids, foreignIDTimes");
142-
if (ids != null && foreignIDTimes != null)
143-
throw new ArgumentException("at most one of the parameters ids or foreignIdTimes must be provided", "ids, foreignIDTimes");
140+
if (ids == null || ids.Count() == 0)
141+
throw new ArgumentException("Activity ids must be provided.", nameof(ids));
142+
143+
return await GetEnrichedActivities(ids, null, options);
144+
}
145+
146+
147+
public async Task<IEnumerable<EnrichedActivity>> GetEnrichedActivities(IEnumerable<ForeignIDTime> foreignIDTimes, GetOptions options = null)
148+
{
149+
if (foreignIDTimes == null || foreignIDTimes.Count() == 0)
150+
throw new ArgumentException("ForeignIDTimes must be provided.", nameof(foreignIDTimes));
144151

152+
return await GetEnrichedActivities(null, foreignIDTimes, options);
153+
}
154+
155+
156+
private async Task<IEnumerable<EnrichedActivity>> GetEnrichedActivities(IEnumerable<string> ids = null, IEnumerable<ForeignIDTime> foreignIDTimes = null, GetOptions options = null)
157+
{
145158
var request = _client.BuildAppRequest("enrich/activities/", HttpMethod.GET);
146-
if (ids != null)
159+
160+
if (ids != null && ids.Any())
147161
{
148162
request.AddQueryParameter("ids", string.Join(",", ids));
149163
}
150164

151-
if (foreignIDTimes != null)
165+
if (foreignIDTimes != null && foreignIDTimes.Any())
152166
{
153167
request.AddQueryParameter("foreign_ids", string.Join(",", foreignIDTimes.Select(f => f.ForeignID)));
154168
request.AddQueryParameter("timestamps", string.Join(",", foreignIDTimes.Select(f =>
155169
f.Time.ToString("s", System.Globalization.CultureInfo.InvariantCulture))));
156170
}
157171

158-
if (reactions != null)
159-
{
160-
reactions.Apply(request);
161-
}
172+
options?.Apply(request);
162173

163174
var response = await _client.MakeRequest(request);
164175

src/stream-net/IBatchOperations.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ public interface IBatchOperations
99
Task AddToMany(Activity activity, IEnumerable<string> feedIds);
1010
Task FollowMany(IEnumerable<Follow> follows, int activityCopyLimit = 300);
1111
Task<IEnumerable<Activity>> GetActivities(IEnumerable<string> ids = null, IEnumerable<ForeignIDTime> foreignIDTimes = null);
12-
Task<IEnumerable<EnrichedActivity>> GetEnrichedFlatActivities(IEnumerable<string> ids = null, ReactionOption reactions = null, IEnumerable<ForeignIDTime> foreignIDTimes = null);
12+
Task<IEnumerable<EnrichedActivity>> GetEnrichedActivities(IEnumerable<string> ids, GetOptions options = null);
13+
Task<IEnumerable<EnrichedActivity>> GetEnrichedActivities(IEnumerable<ForeignIDTime> foreignIDTimes, GetOptions options = null);
1314
Task UpdateActivities(IEnumerable<Activity> activities);
1415
Task UpdateActivity(Activity activity);
1516
Task ActivitiesPartialUpdate(IEnumerable<ActivityPartialUpdateRequestObject> updates);

0 commit comments

Comments
 (0)