Web.ActivityPub.ActivityPub: Simplify multi-hashtag, add tests

This commit is contained in:
Haelwenn (lanodan) Monnier 2019-01-10 16:07:32 +01:00
commit 4ad0ad14ed
No known key found for this signature in database
GPG key ID: D5B7A8E43C997DEE
2 changed files with 24 additions and 18 deletions

View file

@ -430,30 +430,15 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
when is_list(tag) and tag_reject != [] do
from(
activity in query,
where:
fragment(
"? && ARRAY(SELECT jsonb_array_elements_text((? #> '{\"object\",\"tag\"}')))",
^tag,
activity.data
),
where:
fragment(
"(not ? && ARRAY(SELECT jsonb_array_elements_text((? #> '{\"object\",\"tag\"}'))))",
^tag_reject,
activity.data
)
where: fragment("(? #> '{\"object\",\"tag\"}') \\?| ?", activity.data, ^tag),
where: fragment("(not (? #> '{\"object\",\"tag\"}') \\?| ?)", activity.data, ^tag_reject)
)
end
defp restrict_tag(query, %{"tag" => tag}) when is_list(tag) do
from(
activity in query,
where:
fragment(
"? && ARRAY(SELECT jsonb_array_elements_text((? #> '{\"object\",\"tag\"}')))",
^tag,
activity.data
)
where: fragment("(? #> '{\"object\",\"tag\"}') \\?| ?", activity.data, ^tag)
)
end