logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma

chat_message_view.ex (1140B)


      1 # Pleroma: A lightweight social networking server
      2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
      3 # SPDX-License-Identifier: AGPL-3.0-only
      4 
      5 defmodule Pleroma.Web.PleromaAPI.ChatMessageView do
      6   use Pleroma.Web, :view
      7 
      8   alias Pleroma.Chat
      9   alias Pleroma.User
     10   alias Pleroma.Web.CommonAPI.Utils
     11   alias Pleroma.Web.MastodonAPI.StatusView
     12 
     13   def render(
     14         "show.json",
     15         %{
     16           object: %{id: id, data: %{"type" => "ChatMessage"} = chat_message},
     17           chat: %Chat{id: chat_id}
     18         }
     19       ) do
     20     %{
     21       id: id |> to_string(),
     22       content: chat_message["content"],
     23       chat_id: chat_id |> to_string(),
     24       account_id: User.get_cached_by_ap_id(chat_message["actor"]).id,
     25       created_at: Utils.to_masto_date(chat_message["published"]),
     26       emojis: StatusView.build_emojis(chat_message["emoji"]),
     27       attachment:
     28         chat_message["attachment"] &&
     29           StatusView.render("attachment.json", attachment: chat_message["attachment"])
     30     }
     31   end
     32 
     33   def render("index.json", opts) do
     34     render_many(opts[:objects], __MODULE__, "show.json", Map.put(opts, :as, :object))
     35   end
     36 end