diff options
author | Aaron Tinio <aptinio@gmail.com> | 2019-05-16 06:25:14 +0800 |
---|---|---|
committer | Aaron Tinio <aptinio@gmail.com> | 2019-05-16 06:25:14 +0800 |
commit | 793f1834d2bc37ba3d4ba11fb669078950994adb (patch) | |
tree | 99519a6205de10f6d9b842b920caa7faddc2fbc1 /lib/pleroma/web | |
parent | 2b6119dfbf47f118dfb102fc09f6450e59ccf15e (diff) | |
download | pleroma-793f1834d2bc37ba3d4ba11fb669078950994adb.tar.gz |
Use named binding to conditionally join object
Diffstat (limited to 'lib/pleroma/web')
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 6087a1cdc..2fd073d3a 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -750,16 +750,11 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do blocks = info.blocks || [] domain_blocks = info.domain_blocks || [] + query = + if has_named_binding?(query, :object), do: query, else: Activity.with_joined_object(query) + from( - activity in query, - inner_join: o in Object, - on: - fragment( - "(?->>'id') = COALESCE(?->'object'->>'id', ?->>'object')", - o.data, - activity.data, - activity.data - ), + [activity, object: o] in query, where: fragment("not (? = ANY(?))", activity.actor, ^blocks), where: fragment("not (? && ?)", activity.recipients, ^blocks), where: |