diff options
Diffstat (limited to 'lib/pleroma')
| -rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 601caeb46..7c94f16b6 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -25,10 +25,21 @@ defmodule Pleroma.Web.CommonAPI do    require Logger    def unblock(blocker, blocked) do -    with %Activity{} = block <- Utils.fetch_latest_block(blocker, blocked), +    with {_, %Activity{} = block} <- {:fetch_block, Utils.fetch_latest_block(blocker, blocked)},           {:ok, unblock_data, _} <- Builder.undo(blocker, block),           {:ok, unblock, _} <- Pipeline.common_pipeline(unblock_data, local: true) do        {:ok, unblock} +    else +      {:fetch_block, nil} -> +        if User.blocks?(blocker, blocked) do +          User.unblock(blocker, blocked) +          {:ok, :no_activity} +        else +          {:error, :not_blocking} +        end + +      e -> +        e      end    end | 
