Merge branch 'develop' into 'remove-twitter-api'
[akkoma] / lib / pleroma / web / common_api / common_api.ex
index 601caeb46f130a7f0e331bd35d51ebcbf599cb69..7c94f16b61b5110139370a505a610db404847698 100644 (file)
@@ -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