diff options
author | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2019-12-30 11:30:20 +0300 |
---|---|---|
committer | Alexander Strizhakov <alex.strizhakov@gmail.com> | 2020-03-01 12:01:39 +0300 |
commit | 32d1e048178a94017c9d8cca79b28272fa6da9f4 (patch) | |
tree | 9034f3345b3d731d895e7572262c75de9eeeee57 /lib/pleroma/object.ex | |
parent | 438394d40447bdfb590ff206ad80907294da0e65 (diff) | |
download | pleroma-32d1e048178a94017c9d8cca79b28272fa6da9f4.tar.gz |
ActivityPub actions & side-effects in transaction
Diffstat (limited to 'lib/pleroma/object.ex')
-rw-r--r-- | lib/pleroma/object.ex | 18 |
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 |