diff options
author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-07-09 10:32:24 +0000 |
---|---|---|
committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-07-09 10:32:24 +0000 |
commit | 68036f5a3b7b609f4464650c2ae40b9679d45291 (patch) | |
tree | 25e0f0f372ea0f77719bb253dee13a4cd831de54 /lib/pleroma/web/common_api/common_api.ex | |
parent | 34d6009d82ef8949d689ed1f7c4ec2c2fad254c7 (diff) | |
parent | 00e54f8fe7af098ba829f7f7cd5511569dcd1c0a (diff) | |
download | pleroma-68036f5a3b7b609f4464650c2ae40b9679d45291.tar.gz |
Merge branch 'follow-pipeline' into 'develop'
Handle `Follow` activities with the pipeline
See merge request pleroma/pleroma!2734
Diffstat (limited to 'lib/pleroma/web/common_api/common_api.ex')
-rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index fd7149079..4d5b0decf 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -101,10 +101,14 @@ defmodule Pleroma.Web.CommonAPI do def follow(follower, followed) do timeout = Pleroma.Config.get([:activitypub, :follow_handshake_timeout]) - with {:ok, follower} <- User.maybe_direct_follow(follower, followed), - {:ok, activity} <- ActivityPub.follow(follower, followed), + with {:ok, follow_data, _} <- Builder.follow(follower, followed), + {:ok, activity, _} <- Pipeline.common_pipeline(follow_data, local: true), {:ok, follower, followed} <- User.wait_and_refresh(timeout, follower, followed) do - {:ok, follower, followed, activity} + if activity.data["state"] == "reject" do + {:error, :rejected} + else + {:ok, follower, followed, activity} + end end end |