user: factor out user set fetching from User.get_notified_from_activity()

This commit is contained in:
William Pitcock 2018-11-09 08:23:45 +00:00
parent 81d6ca1783
commit d26cd6c1bf
1 changed files with 10 additions and 7 deletions

View File

@ -464,15 +464,15 @@ def update_follower_count(%User{} = user) do
update_and_set_cache(cs)
end
def get_notified_from_activity_query(to, false) do
def get_users_from_set_query(ap_ids, false) do
from(
u in User,
where: u.ap_id in ^to
where: u.ap_id in ^ap_ids
)
end
def get_notified_from_activity_query(to, true) do
query = get_notified_from_activity_query(to, false)
def get_users_from_set_query(ap_ids, true) do
query = get_users_from_set_query(ap_ids, false)
from(
u in query,
@ -480,6 +480,11 @@ def get_notified_from_activity_query(to, true) do
)
end
def get_users_from_set(ap_ids, local_only \\ true) do
get_users_from_set_query(ap_ids, local_only)
|> Repo.all()
end
def get_notified_from_activity(activity, local_only \\ true)
def get_notified_from_activity(%Activity{data: %{"to" => to} = data}, local_only) do
@ -513,9 +518,7 @@ def get_notified_from_activity(%Activity{data: %{"to" => to} = data}, local_only
(to ++ tagged_mentions)
|> Enum.uniq()
query = get_notified_from_activity_query(to, local_only)
Repo.all(query)
get_users_from_set(to, local_only)
end
def get_notified_from_activity(_, _), do: []