diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-04-14 17:13:51 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-04-14 17:13:51 +0200 |
commit | 03ddaead7e01d096cc3caa95a956d049be2e28f6 (patch) | |
tree | 14ffabd4929e556c668d94d6e5f21634397d6a2a /lib/pleroma/user.ex | |
parent | 90b38fd51b4d40b6240ff5e5e3bb852eb18f97df (diff) | |
download | pleroma-03ddaead7e01d096cc3caa95a956d049be2e28f6.tar.gz |
Add basic user caching.
Expires after 5 seconds.
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 13 |
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 |