aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/common_api/common_api.ex
diff options
context:
space:
mode:
authorHaelwenn <contact+git.pleroma.social@hacktivis.me>2020-07-09 10:32:24 +0000
committerHaelwenn <contact+git.pleroma.social@hacktivis.me>2020-07-09 10:32:24 +0000
commit68036f5a3b7b609f4464650c2ae40b9679d45291 (patch)
tree25e0f0f372ea0f77719bb253dee13a4cd831de54 /lib/pleroma/web/common_api/common_api.ex
parent34d6009d82ef8949d689ed1f7c4ec2c2fad254c7 (diff)
parent00e54f8fe7af098ba829f7f7cd5511569dcd1c0a (diff)
downloadpleroma-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.ex10
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