diff options
author | lain <lain@soykaf.club> | 2018-03-31 20:02:09 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2018-03-31 20:02:09 +0200 |
commit | 2222e5599c4f93c310564a01a16c37763a5c430d (patch) | |
tree | 940b7d19ddec9744fd93225ab78bc8734e033ceb /lib/pleroma/user.ex | |
parent | 57b24b2cbaba9a85a715a311db31654995232b10 (diff) | |
download | pleroma-2222e5599c4f93c310564a01a16c37763a5c430d.tar.gz |
Don't fetch anything except ap_id for follower / following
collections.
Should speed up the queries because ecto doesn't have to parse the json.
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 55b290309..abeb169d9 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -278,24 +278,30 @@ defmodule Pleroma.User do end end - def get_followers(%User{id: id, follower_address: follower_address}) do - q = - from( - u in User, - where: fragment("? <@ ?", ^[follower_address], u.following), - where: u.id != ^id - ) + def get_followers_query(%User{id: id, follower_address: follower_address}) do + from( + u in User, + where: fragment("? <@ ?", ^[follower_address], u.following), + where: u.id != ^id + ) + end + + def get_followers(user) do + q = get_followers_query(user) {:ok, Repo.all(q)} end - def get_friends(%User{id: id, following: following}) do - q = - from( - u in User, - where: u.follower_address in ^following, - where: u.id != ^id - ) + def get_friends_query(%User{id: id, following: following}) do + from( + u in User, + where: u.follower_address in ^following, + where: u.id != ^id + ) + end + + def get_friends(user) do + q = get_friends_query(user) {:ok, Repo.all(q)} end |