commit: b666f11d2fc32b10dce0d36e72cc285377c28f18
parent: 6a179a44bec113b8fb9a8092f791111a318e7a53
Author: Roger Braun <roger@rogerbraun.net>
Date: Wed, 12 Apr 2017 17:11:01 +0200
Add max_id fetching to activity fetching.
Diffstat:
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -54,6 +54,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
query = from activity in query,
where: activity.id > ^since_id
+ query = if opts["max_id"] do
+ from activity in query, where: activity.id < ^opts["max_id"]
+ else
+ query
+ end
+
Repo.all(query)
|> Enum.reverse
end
diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs
@@ -94,6 +94,20 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
assert length(activities) == 10
assert last == last_expected
end
+
+ test "retrieves ids up to max_id" do
+ _first_activities = ActivityBuilder.insert_list(10)
+ activities = ActivityBuilder.insert_list(20)
+ later_activities = ActivityBuilder.insert_list(10)
+ max_id = List.first(later_activities).id
+ last_expected = List.last(activities)
+
+ activities = ActivityPub.fetch_public_activities(%{"max_id" => max_id})
+ last = List.last(activities)
+
+ assert length(activities) == 20
+ assert last == last_expected
+ end
end
describe "uploading files" do