aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/object.ex9
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api.ex2
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)