aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web
diff options
context:
space:
mode:
authorAaron Tinio <aptinio@gmail.com>2019-05-16 06:25:14 +0800
committerAaron Tinio <aptinio@gmail.com>2019-05-16 06:25:14 +0800
commit793f1834d2bc37ba3d4ba11fb669078950994adb (patch)
tree99519a6205de10f6d9b842b920caa7faddc2fbc1 /lib/pleroma/web
parent2b6119dfbf47f118dfb102fc09f6450e59ccf15e (diff)
downloadpleroma-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.ex13
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: