logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
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:

Mlib/pleroma/web/activity_pub/activity_pub.ex6++++++
Mtest/web/activity_pub/activity_pub_test.exs14++++++++++++++
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