Merge remote-tracking branch 'pleroma/develop' into feature/addressable-lists
[akkoma] / lib / pleroma / web / common_api / common_api.ex
index 1c47a31d76be0c919403a6a24c99e59036e3c3e7..44669b22820a5c481cc959a32a4e05bacfa45003 100644 (file)
@@ -31,7 +31,8 @@ defmodule Pleroma.Web.CommonAPI do
 
   def unfollow(follower, unfollowed) do
     with {:ok, follower, _follow_activity} <- User.unfollow(follower, unfollowed),
-         {:ok, _activity} <- ActivityPub.unfollow(follower, unfollowed) do
+         {:ok, _activity} <- ActivityPub.unfollow(follower, unfollowed),
+         {:ok, _unfollowed} <- User.unsubscribe(follower, unfollowed) do
       {:ok, follower}
     end
   end
@@ -243,18 +244,15 @@ defmodule Pleroma.Web.CommonAPI do
       preview? = Pleroma.Web.ControllerHelper.truthy_param?(data["preview"]) || false
       direct? = visibility == "direct"
 
-      additional_data =
-        %{"cc" => cc, "directMessage" => direct?} |> maybe_add_list_data(user, visibility)
-
-      params = %{
+      %{
         to: to,
         actor: user,
         context: context,
         object: object,
-        additional: additional_data
+        additional: %{"cc" => cc, "directMessage" => direct?}
       }
-
-      ActivityPub.create(params, preview?)
+      |> maybe_add_list_data(user, visibility)
+      |> ActivityPub.create(preview?)
     else
       {:private_to_public, true} ->
         {:error, dgettext("errors", "The message visibility must be direct")}