diff options
author | lain <lain@soykaf.club> | 2020-05-25 13:57:27 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-05-25 13:57:27 +0200 |
commit | ee35bb5ac287e0ff913685256a826e759add3fb9 (patch) | |
tree | 971031903f987e4b70768ac1f91666fdfe6a10b4 /lib/pleroma/web/common_api/common_api.ex | |
parent | 578ed3a37f28ecbd9fd976c54ee53e8ed2a6adff (diff) | |
parent | ec470c4c7717dc9479df9e7b70f9805dcf2f5e08 (diff) | |
download | pleroma-ee35bb5ac287e0ff913685256a826e759add3fb9.tar.gz |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
Diffstat (limited to 'lib/pleroma/web/common_api/common_api.ex')
-rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 7a2c0a96d..c08edbc5f 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -167,18 +167,19 @@ defmodule Pleroma.Web.CommonAPI do end def repeat(id, user, params \\ %{}) do - with %Activity{data: %{"type" => "Create"}} = activity <- Activity.get_by_id(id) do - object = Object.normalize(activity) - announce_activity = Utils.get_existing_announce(user.ap_id, object) - public = public_announce?(object, params) - - if announce_activity do - {:ok, announce_activity, object} - else - ActivityPub.announce(user, object, nil, true, public) - end + with %Activity{data: %{"type" => "Create"}} = activity <- Activity.get_by_id(id), + object = %Object{} <- Object.normalize(activity, false), + {_, nil} <- {:existing_announce, Utils.get_existing_announce(user.ap_id, object)}, + public = public_announce?(object, params), + {:ok, announce, _} <- Builder.announce(user, object, public: public), + {:ok, activity, _} <- Pipeline.common_pipeline(announce, local: true) do + {:ok, activity} else - _ -> {:error, :not_found} + {:existing_announce, %Activity{} = announce} -> + {:ok, announce} + + _ -> + {:error, :not_found} end end |