diff options
author | Egor Kislitsyn <egor@kislitsyn.com> | 2020-03-02 15:35:49 +0400 |
---|---|---|
committer | Egor Kislitsyn <egor@kislitsyn.com> | 2020-03-02 15:35:49 +0400 |
commit | 4a45b96a91485a39f26bcc86b6cbd21d1547511e (patch) | |
tree | b4a6cc3f7be26b84b85d3a1ff3adc9b896b54e85 /lib/pleroma/object.ex | |
parent | f446744a6a72d707504c2ba20ea2326f956b5097 (diff) | |
parent | 45b08ca1665920564c9daf35a96e93dff031a649 (diff) | |
download | pleroma-4a45b96a91485a39f26bcc86b6cbd21d1547511e.tar.gz |
Merge branch 'develop' into fix/signup-without-email
Diffstat (limited to 'lib/pleroma/object.ex')
-rw-r--r-- | lib/pleroma/object.ex | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex index f316f8b36..9574432f0 100644 --- a/lib/pleroma/object.ex +++ b/lib/pleroma/object.ex @@ -1,10 +1,13 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Object do use Ecto.Schema + import Ecto.Query + import Ecto.Changeset + alias Pleroma.Activity alias Pleroma.Object alias Pleroma.Object.Fetcher @@ -12,9 +15,6 @@ defmodule Pleroma.Object do alias Pleroma.Repo alias Pleroma.User - import Ecto.Query - import Ecto.Changeset - require Logger @type t() :: %__MODULE__{} @@ -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 |