- defp restrict_hashtag_reject_any(query, %{tag_reject: tags_reject}) when is_list(tags_reject) do
- if has_named_binding?(query, :thread_mute) do
- from(
- [activity, object, thread_mute] in query,
- group_by: [activity.id, object.id, thread_mute.id]
- )
- else
- from(
- [activity, object] in query,
- group_by: [activity.id, object.id]
- )
- end
- |> join(:left, [_activity, object], hashtag in assoc(object, :hashtags), as: :hashtag)
- |> having(
- [hashtag: hashtag],
- fragment("not(array_agg(?) && (?))", hashtag.name, ^tags_reject)
+ defp restrict_embedded_tag_reject_any(query, %{tag_reject: tag_reject})
+ when is_list(tag_reject) do
+ from(
+ [_activity, object] in query,
+ where: fragment("not (?)->'tag' \\?| (?)", object.data, ^tag_reject)