diff options
author | Alex Gleason <alex@alexgleason.me> | 2022-01-23 16:03:46 -0600 |
---|---|---|
committer | tusooa <tusooa@kazv.moe> | 2023-09-13 19:19:04 -0400 |
commit | 1f19dd76f66ca657ddfe79a51e59b8997a4c6321 (patch) | |
tree | a1ead79e170c4d38f45a6efa1cc7e88f8ff07579 /lib | |
parent | 54a989793878c63900d2c6de7b4ffc8fbd8fe8c6 (diff) | |
download | pleroma-1f19dd76f66ca657ddfe79a51e59b8997a4c6321.tar.gz pleroma-1f19dd76f66ca657ddfe79a51e59b8997a4c6321.zip |
ActivityDraft: mix format, defensive actor ID
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/common_api/activity_draft.ex | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/pleroma/web/common_api/activity_draft.ex b/lib/pleroma/web/common_api/activity_draft.ex index 588aba55e..95534f3cb 100644 --- a/lib/pleroma/web/common_api/activity_draft.ex +++ b/lib/pleroma/web/common_api/activity_draft.ex @@ -11,6 +11,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do alias Pleroma.Web.CommonAPI.Utils import Pleroma.Web.Gettext + import Pleroma.Web.Utils.Guards, only: [not_empty_string: 1] defstruct valid?: true, errors: [], @@ -134,13 +135,16 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do defp in_reply_to(draft), do: draft - defp quote_post(%{params: %{quote_id: ""}} = draft), do: draft + defp quote_post(%{params: %{quote_id: id}} = draft) when not_empty_string(id) do + case Activity.get_by_id(id) do + %Activity{actor: actor_ap_id} = activity when not_empty_string(actor_ap_id) -> + %__MODULE__{draft | quote_post: activity, mentions: [actor_ap_id]} - defp quote_post(%{params: %{quote_id: id}} = draft) when is_binary(id) do - with %Activity{actor: actor_ap_id} = activity <- Activity.get_by_id(id) do - %__MODULE__{draft | quote_post: activity, mentions: [actor_ap_id]} - else - _ -> draft + %Activity{} = activity -> + %__MODULE__{draft | quote_post: activity} + + _ -> + draft end end |