aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex')
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex31
1 files changed, 6 insertions, 25 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex
index 043d847d1..d9c36e313 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex
@@ -4,9 +4,6 @@
defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling do
alias Pleroma.Repo
- alias Pleroma.Web.ActivityPub.ObjectValidator
- alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator
- alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator
alias Pleroma.Web.ActivityPub.Pipeline
def handle_incoming(
@@ -15,30 +12,14 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling do
) do
# Create has to be run inside a transaction because the object is created as a side effect.
# If this does not work, we need to roll back creating the activity.
- case Repo.transaction(fn -> do_handle_incoming(data) end) do
- {:ok, value} ->
- value
+ case Repo.transaction(fn -> Pipeline.common_pipeline(data, local: false) end) do
+ {:ok, {:ok, activity, _}} ->
+ {:ok, activity}
- {:error, e} ->
- {:error, e}
- end
- end
+ {:ok, e} ->
+ e
- def do_handle_incoming(
- %{"type" => "Create", "object" => %{"type" => "ChatMessage"} = object_data} = data
- ) do
- with {_, {:ok, cast_data_sym}} <-
- {:casting_data, data |> CreateChatMessageValidator.cast_and_apply()},
- cast_data = ObjectValidator.stringify_keys(cast_data_sym),
- {_, {:ok, object_cast_data_sym}} <-
- {:casting_object_data, object_data |> ChatMessageValidator.cast_and_apply()},
- object_cast_data = ObjectValidator.stringify_keys(object_cast_data_sym),
- {_, {:ok, activity, _meta}} <-
- {:common_pipeline,
- Pipeline.common_pipeline(cast_data, local: false, object_data: object_cast_data)} do
- {:ok, activity}
- else
- e ->
+ {:error, e} ->
{:error, e}
end
end