logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: b028b0f97d4b6310b1402b3b876aa8f8b286bc4d
parent: bc14c98de115d8695d3436d1f093f4c161ceb3b2
Author: rinpatch <rinpatch@sdf.org>
Date:   Mon, 25 Mar 2019 09:24:08 +0000

Merge branch 'bugfix/missing-announces' into 'develop'

fix up missing announcements with preloads

See merge request pleroma/pleroma!972

Diffstat:

Mlib/pleroma/activity.ex16++++++++++------
Mtest/web/activity_pub/activity_pub_test.exs14++++++++++++++
2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex @@ -41,8 +41,8 @@ defmodule Pleroma.Activity do # # ``` # |> join(:inner, [activity], o in Object, - # on: fragment("(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", - # o.data, activity.data)) + # on: fragment("(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')", + # o.data, activity.data, activity.data)) # |> preload([activity, object], [object: object]) # ``` # @@ -61,8 +61,9 @@ defmodule Pleroma.Activity do o in Object, on: fragment( - "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", + "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", o.data, + activity.data, activity.data ) ) @@ -86,8 +87,9 @@ defmodule Pleroma.Activity do left_join: o in Object, on: fragment( - "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", + "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", o.data, + activity.data, activity.data ), preload: [object: o] @@ -105,8 +107,9 @@ defmodule Pleroma.Activity do inner_join: o in Object, on: fragment( - "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", + "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", o.data, + activity.data, activity.data ), preload: [object: o] @@ -182,8 +185,9 @@ defmodule Pleroma.Activity do inner_join: o in Object, on: fragment( - "(?->>'id') = COALESCE((? -> 'object'::text) ->> 'id'::text)", + "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", o.data, + activity.data, activity.data ), preload: [object: o] diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs @@ -365,6 +365,20 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do assert Enum.member?(activities, activity_one) end + test "does include announces on request" do + activity_three = insert(:note_activity) + user = insert(:user) + booster = insert(:user) + + {:ok, user} = User.follow(user, booster) + + {:ok, announce, _object} = CommonAPI.repeat(activity_three.id, booster) + + [announce_activity] = ActivityPub.fetch_activities([user.ap_id | user.following]) + + assert announce_activity.id == announce.id + end + test "excludes reblogs on request" do user = insert(:user) {:ok, expected_activity} = ActivityBuilder.insert(%{"type" => "Create"}, %{:user => user})