diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 30 | ||||
| -rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub_controller.ex | 7 | 
2 files changed, 6 insertions, 31 deletions
| diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 4a133498e..c67b3335d 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -398,36 +398,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do      end    end -  # TODO: This is weird, maybe we shouldn't check here if we can make the activity. -  @spec like(User.t(), Object.t(), String.t() | nil, boolean()) :: -          {:ok, Activity.t(), Object.t()} | {:error, any()} -  def like(user, object, activity_id \\ nil, local \\ true) do -    with {:ok, result} <- Repo.transaction(fn -> do_like(user, object, activity_id, local) end) do -      result -    end -  end - -  defp do_like( -         %User{ap_id: ap_id} = user, -         %Object{data: %{"id" => _}} = object, -         activity_id, -         local -       ) do -    with nil <- get_existing_like(ap_id, object), -         like_data <- make_like_data(user, object, activity_id), -         {:ok, activity} <- insert(like_data, local), -         {:ok, object} <- add_like_to_object(activity, object), -         :ok <- maybe_federate(activity) do -      {:ok, activity, object} -    else -      %Activity{} = activity -> -        {:ok, activity, object} - -      {:error, error} -> -        Repo.rollback(error) -    end -  end -    @spec unlike(User.t(), Object.t(), String.t() | nil, boolean()) ::            {:ok, Activity.t(), Activity.t(), Object.t()} | {:ok, Object.t()} | {:error, any()}    def unlike(%User{} = actor, %Object{} = object, activity_id \\ nil, local \\ true) do diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex index 8b9eb4a2c..d625530ec 100644 --- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex +++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex @@ -12,8 +12,10 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do    alias Pleroma.Plugs.EnsureAuthenticatedPlug    alias Pleroma.User    alias Pleroma.Web.ActivityPub.ActivityPub +  alias Pleroma.Web.ActivityPub.Builder    alias Pleroma.Web.ActivityPub.InternalFetchActor    alias Pleroma.Web.ActivityPub.ObjectView +  alias Pleroma.Web.ActivityPub.Pipeline    alias Pleroma.Web.ActivityPub.Relay    alias Pleroma.Web.ActivityPub.Transmogrifier    alias Pleroma.Web.ActivityPub.UserView @@ -421,7 +423,10 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do    defp handle_user_activity(%User{} = user, %{"type" => "Like"} = params) do      with %Object{} = object <- Object.normalize(params["object"]), -         {:ok, activity, _object} <- ActivityPub.like(user, object) do +         {_, {:ok, like_object, meta}} <- {:build_object, Builder.like(user, object)}, +         {_, {:ok, %Activity{} = activity, _meta}} <- +           {:common_pipeline, +            Pipeline.common_pipeline(like_object, Keyword.put(meta, :local, true))} do        {:ok, activity}      else        _ -> {:error, dgettext("errors", "Can't like object")} | 
