diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-05-01 16:12:20 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-05-01 16:12:20 +0200 |
commit | f169de34544a12c174c454da59781a694b8c2387 (patch) | |
tree | 18cf3ca1c5068c51742fe9ae36a79fe34e1fb5fd | |
parent | b9d1fc05b22e29b15208cd6fdcb5d40d34d2a83e (diff) | |
download | pleroma-f169de34544a12c174c454da59781a694b8c2387.tar.gz |
Cache objects in dev and prod.
-rw-r--r-- | lib/pleroma/object.ex | 9 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index a924c3199..168843bd9 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -14,6 +14,15 @@ defmodule Pleroma.Object do where: fragment("? @> ?", object.data, ^%{id: ap_id})) end + def get_cached_by_ap_id(ap_id) do + if Mix.env == :test do + get_by_ap_id(ap_id) + else + key = "object:#{ap_id}" + Cachex.get!(:user_cache, key, fallback: fn(_) -> get_by_ap_id(ap_id) end) + end + end + def context_mapping(context) do %Object{data: %{"id" => context}} end diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 85fac9146..941bacaa9 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -317,7 +317,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do def context_to_conversation_id(context) do {:ok, id} = Repo.transaction(fn -> - with %Object{id: id} <- Object.get_by_ap_id(context) do + with %Object{id: id} <- Object.get_cached_by_ap_id(context) do id else _e -> changeset = Object.context_mapping(context) |