diff options
| author | kaniini <ariadne@dereferenced.org> | 2019-08-13 21:12:59 +0000 | 
|---|---|---|
| committer | kaniini <ariadne@dereferenced.org> | 2019-08-13 21:12:59 +0000 | 
| commit | 943da97d6b5ea1b9918d020e92916b8ede4811f6 (patch) | |
| tree | 45bef2ca13fb7854272ea2f88d15f018aecd7321 /lib | |
| parent | 39e6b16432f848dd7b789dcf3c233e8ec33ecb89 (diff) | |
| parent | fea4d89e9f59b6fbdbd727eecde9b046e9ca46c6 (diff) | |
| download | pleroma-943da97d6b5ea1b9918d020e92916b8ede4811f6.tar.gz pleroma-943da97d6b5ea1b9918d020e92916b8ede4811f6.zip  | |
Merge branch 'test/web_activity_pub_relay' into 'develop'
tests for Web/ActivityPub/Relay
See merge request pleroma/pleroma!1557
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/relay.ex | 17 | 
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/relay.ex b/lib/pleroma/web/activity_pub/relay.ex index 1ebfcdd86..5f18cc64a 100644 --- a/lib/pleroma/web/activity_pub/relay.ex +++ b/lib/pleroma/web/activity_pub/relay.ex @@ -14,6 +14,7 @@ defmodule Pleroma.Web.ActivityPub.Relay do      |> User.get_or_create_service_actor_by_ap_id()    end +  @spec follow(String.t()) :: {:ok, Activity.t()} | {:error, any()}    def follow(target_instance) do      with %User{} = local_user <- get_actor(),           {:ok, %User{} = target_user} <- User.get_or_fetch_by_ap_id(target_instance), @@ -21,12 +22,17 @@ defmodule Pleroma.Web.ActivityPub.Relay do        Logger.info("relay: followed instance: #{target_instance}; id=#{activity.data["id"]}")        {:ok, activity}      else +      {:error, _} = error -> +        Logger.error("error: #{inspect(error)}") +        error +        e ->          Logger.error("error: #{inspect(e)}")          {:error, e}      end    end +  @spec unfollow(String.t()) :: {:ok, Activity.t()} | {:error, any()}    def unfollow(target_instance) do      with %User{} = local_user <- get_actor(),           {:ok, %User{} = target_user} <- User.get_or_fetch_by_ap_id(target_instance), @@ -34,20 +40,27 @@ defmodule Pleroma.Web.ActivityPub.Relay do        Logger.info("relay: unfollowed instance: #{target_instance}: id=#{activity.data["id"]}")        {:ok, activity}      else +      {:error, _} = error -> +        Logger.error("error: #{inspect(error)}") +        error +        e ->          Logger.error("error: #{inspect(e)}")          {:error, e}      end    end +  @spec publish(any()) :: {:ok, Activity.t(), Object.t()} | {:error, any()}    def publish(%Activity{data: %{"type" => "Create"}} = activity) do      with %User{} = user <- get_actor(),           %Object{} = object <- Object.normalize(activity) do        ActivityPub.announce(user, object, nil, true, false)      else -      e -> Logger.error("error: #{inspect(e)}") +      e -> +        Logger.error("error: #{inspect(e)}") +        {:error, inspect(e)}      end    end -  def publish(_), do: nil +  def publish(_), do: {:error, "Not implemented"}  end  | 
