ChatController: Handle pagination.
[akkoma] / lib / pleroma / web / common_api / common_api.ex
index 2f13daf0ccbd899e2de3f0028bc9b5843f056932..2c25850db4cfb9a20e1b69c4deb2a3a1860b6b93 100644 (file)
@@ -17,6 +17,7 @@ defmodule Pleroma.Web.CommonAPI do
   alias Pleroma.Web.ActivityPub.Pipeline
   alias Pleroma.Web.ActivityPub.Utils
   alias Pleroma.Web.ActivityPub.Visibility
+  alias Pleroma.Formatter
 
   import Pleroma.Web.Gettext
   import Pleroma.Web.CommonAPI.Utils
@@ -24,11 +25,16 @@ defmodule Pleroma.Web.CommonAPI do
   require Pleroma.Constants
   require Logger
 
-  def post_chat_message(user, recipient, content) do
+  def post_chat_message(%User{} = user, %User{} = recipient, content) do
     transaction =
       Repo.transaction(fn ->
         with {_, {:ok, chat_message_data, _meta}} <-
-               {:build_object, Builder.chat_message(user, recipient.ap_id, content)},
+               {:build_object,
+                Builder.chat_message(
+                  user,
+                  recipient.ap_id,
+                  content |> Formatter.html_escape("text/plain")
+                )},
              {_, {:ok, chat_message_object}} <-
                {:create_object, Object.create(chat_message_data)},
              {_, {:ok, create_activity_data, _meta}} <-