aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user.ex
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-04-14 17:13:51 +0200
committerRoger Braun <roger@rogerbraun.net>2017-04-14 17:13:51 +0200
commit03ddaead7e01d096cc3caa95a956d049be2e28f6 (patch)
tree14ffabd4929e556c668d94d6e5f21634397d6a2a /lib/pleroma/user.ex
parent90b38fd51b4d40b6240ff5e5e3bb852eb18f97df (diff)
downloadpleroma-03ddaead7e01d096cc3caa95a956d049be2e28f6.tar.gz
Add basic user caching.
Expires after 5 seconds.
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r--lib/pleroma/user.ex13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index c77704db0..0a443d22a 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -52,4 +52,17 @@ defmodule Pleroma.User do
def following?(%User{} = follower, %User{} = followed) do
Enum.member?(follower.following, User.ap_followers(followed))
end
+
+ def get_cached_by_ap_id(ap_id) do
+ ConCache.get_or_store(:users, "ap_id:#{ap_id}", fn() ->
+ # Return false so the cache will store it.
+ Repo.get_by(User, ap_id: ap_id) || false
+ end)
+ end
+
+ def get_cached_by_nickname(nickname) do
+ ConCache.get_or_store(:users, "nickname:#{nickname}", fn() ->
+ Repo.get_by(User, nickname: nickname) || false
+ end)
+ end
end