aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/object.ex
diff options
context:
space:
mode:
authorAlexander Strizhakov <alex.strizhakov@gmail.com>2019-12-30 11:30:20 +0300
committerAlexander Strizhakov <alex.strizhakov@gmail.com>2020-03-01 12:01:39 +0300
commit32d1e048178a94017c9d8cca79b28272fa6da9f4 (patch)
tree9034f3345b3d731d895e7572262c75de9eeeee57 /lib/pleroma/object.ex
parent438394d40447bdfb590ff206ad80907294da0e65 (diff)
downloadpleroma-32d1e048178a94017c9d8cca79b28272fa6da9f4.tar.gz
ActivityPub actions & side-effects in transaction
Diffstat (limited to 'lib/pleroma/object.ex')
-rw-r--r--lib/pleroma/object.ex18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex
index f316f8b36..20aba4c15 100644
--- a/lib/pleroma/object.ex
+++ b/lib/pleroma/object.ex
@@ -145,18 +145,18 @@ defmodule Pleroma.Object do
# Legacy objects can be mutated by anybody
def authorize_mutation(%Object{}, %User{}), do: true
+ @spec get_cached_by_ap_id(String.t()) :: Object.t() | nil
def get_cached_by_ap_id(ap_id) do
key = "object:#{ap_id}"
- Cachex.fetch!(:object_cache, key, fn _ ->
- object = get_by_ap_id(ap_id)
-
- if object do
- {:commit, object}
- else
- {:ignore, object}
- end
- end)
+ with {:ok, nil} <- Cachex.get(:object_cache, key),
+ object when not is_nil(object) <- get_by_ap_id(ap_id),
+ {:ok, true} <- Cachex.put(:object_cache, key, object) do
+ object
+ else
+ {:ok, object} -> object
+ nil -> nil
+ end
end
def context_mapping(context) do