ChatMessageReference -> Chat.MessageReference

This commit is contained in:
lain 2020-06-06 11:51:10 +02:00
parent 137adef6e0
commit ca0e6e702b
14 changed files with 66 additions and 68 deletions

View file

@ -2,7 +2,7 @@
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.ChatMessageReference do defmodule Pleroma.Chat.MessageReference do
@moduledoc """ @moduledoc """
A reference that builds a relation between an AP chat message that a user can see and whether it has been seen A reference that builds a relation between an AP chat message that a user can see and whether it has been seen
by them, or should be displayed to them. Used to build the chat view that is presented to the user. by them, or should be displayed to them. Used to build the chat view that is presented to the user.

View file

@ -7,7 +7,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do
""" """
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Notification alias Pleroma.Notification
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.Repo alias Pleroma.Repo
@ -111,7 +111,7 @@ def handle(%{data: %{"type" => "Delete", "object" => deleted_object}} = object,
Object.decrease_replies_count(in_reply_to) Object.decrease_replies_count(in_reply_to)
end end
ChatMessageReference.delete_for_object(deleted_object) MessageReference.delete_for_object(deleted_object)
ActivityPub.stream_out(object) ActivityPub.stream_out(object)
ActivityPub.stream_out_participations(deleted_object, user) ActivityPub.stream_out_participations(deleted_object, user)
@ -146,13 +146,13 @@ def handle_object_creation(%{"type" => "ChatMessage"} = object, meta) do
|> Enum.each(fn [user, other_user] -> |> Enum.each(fn [user, other_user] ->
if user.local do if user.local do
{:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id)
{:ok, cm_ref} = ChatMessageReference.create(chat, object, user.ap_id != actor.ap_id) {:ok, cm_ref} = MessageReference.create(chat, object, user.ap_id != actor.ap_id)
# We add a cache of the unread value here so that it # We add a cache of the unread value here so that it
# doesn't change when being streamed out # doesn't change when being streamed out
chat = chat =
chat chat
|> Map.put(:unread, ChatMessageReference.unread_count_for_chat(chat)) |> Map.put(:unread, MessageReference.unread_count_for_chat(chat))
Streamer.stream( Streamer.stream(
["user", "user:pleroma_chat"], ["user", "user:pleroma_chat"],

View file

@ -6,7 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do
use Pleroma.Web, :view use Pleroma.Web, :view
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Notification alias Pleroma.Notification
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.User alias Pleroma.User
@ -15,7 +15,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do
alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.MastodonAPI.NotificationView alias Pleroma.Web.MastodonAPI.NotificationView
alias Pleroma.Web.MastodonAPI.StatusView alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.PleromaAPI.ChatMessageReferenceView alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView
@parent_types ~w{Like Announce EmojiReact} @parent_types ~w{Like Announce EmojiReact}
@ -139,9 +139,9 @@ defp put_chat_message(response, activity, reading_user, opts) do
object = Object.normalize(activity) object = Object.normalize(activity)
author = User.get_cached_by_ap_id(object.data["actor"]) author = User.get_cached_by_ap_id(object.data["actor"])
chat = Pleroma.Chat.get(reading_user.id, author.ap_id) chat = Pleroma.Chat.get(reading_user.id, author.ap_id)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
render_opts = Map.merge(opts, %{for: reading_user, chat_message_reference: cm_ref}) render_opts = Map.merge(opts, %{for: reading_user, chat_message_reference: cm_ref})
chat_message_render = ChatMessageReferenceView.render("show.json", render_opts) chat_message_render = MessageReferenceView.render("show.json", render_opts)
Map.put(response, :chat_message, chat_message_render) Map.put(response, :chat_message, chat_message_render)
end end

View file

@ -6,14 +6,14 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.Pagination alias Pleroma.Pagination
alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Plugs.OAuthScopesPlug
alias Pleroma.Repo alias Pleroma.Repo
alias Pleroma.User alias Pleroma.User
alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI
alias Pleroma.Web.PleromaAPI.ChatMessageReferenceView alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView
alias Pleroma.Web.PleromaAPI.ChatView alias Pleroma.Web.PleromaAPI.ChatView
import Ecto.Query import Ecto.Query
@ -46,13 +46,13 @@ def delete_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{
message_id: message_id, message_id: message_id,
id: chat_id id: chat_id
}) do }) do
with %ChatMessageReference{} = cm_ref <- with %MessageReference{} = cm_ref <-
ChatMessageReference.get_by_id(message_id), MessageReference.get_by_id(message_id),
^chat_id <- cm_ref.chat_id |> to_string(), ^chat_id <- cm_ref.chat_id |> to_string(),
%Chat{user_id: ^user_id} <- Chat.get_by_id(chat_id), %Chat{user_id: ^user_id} <- Chat.get_by_id(chat_id),
{:ok, _} <- remove_or_delete(cm_ref, user) do {:ok, _} <- remove_or_delete(cm_ref, user) do
conn conn
|> put_view(ChatMessageReferenceView) |> put_view(MessageReferenceView)
|> render("show.json", chat_message_reference: cm_ref) |> render("show.json", chat_message_reference: cm_ref)
else else
_e -> _e ->
@ -71,7 +71,7 @@ defp remove_or_delete(
defp remove_or_delete(cm_ref, _) do defp remove_or_delete(cm_ref, _) do
cm_ref cm_ref
|> ChatMessageReference.delete() |> MessageReference.delete()
end end
def post_chat_message( def post_chat_message(
@ -87,9 +87,9 @@ def post_chat_message(
media_id: params[:media_id] media_id: params[:media_id]
), ),
message <- Object.normalize(activity, false), message <- Object.normalize(activity, false),
cm_ref <- ChatMessageReference.for_chat_and_object(chat, message) do cm_ref <- MessageReference.for_chat_and_object(chat, message) do
conn conn
|> put_view(ChatMessageReferenceView) |> put_view(MessageReferenceView)
|> render("show.json", for: user, chat_message_reference: cm_ref) |> render("show.json", for: user, chat_message_reference: cm_ref)
end end
end end
@ -98,20 +98,20 @@ def mark_message_as_read(%{assigns: %{user: %{id: user_id} = user}} = conn, %{
id: chat_id, id: chat_id,
message_id: message_id message_id: message_id
}) do }) do
with %ChatMessageReference{} = cm_ref <- with %MessageReference{} = cm_ref <-
ChatMessageReference.get_by_id(message_id), MessageReference.get_by_id(message_id),
^chat_id <- cm_ref.chat_id |> to_string(), ^chat_id <- cm_ref.chat_id |> to_string(),
%Chat{user_id: ^user_id} <- Chat.get_by_id(chat_id), %Chat{user_id: ^user_id} <- Chat.get_by_id(chat_id),
{:ok, cm_ref} <- ChatMessageReference.mark_as_read(cm_ref) do {:ok, cm_ref} <- MessageReference.mark_as_read(cm_ref) do
conn conn
|> put_view(ChatMessageReferenceView) |> put_view(MessageReferenceView)
|> render("show.json", for: user, chat_message_reference: cm_ref) |> render("show.json", for: user, chat_message_reference: cm_ref)
end end
end end
def mark_as_read(%{assigns: %{user: %{id: user_id}}} = conn, %{id: id}) do def mark_as_read(%{assigns: %{user: %{id: user_id}}} = conn, %{id: id}) do
with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id),
{_n, _} <- ChatMessageReference.set_all_seen_for_chat(chat) do {_n, _} <- MessageReference.set_all_seen_for_chat(chat) do
conn conn
|> put_view(ChatView) |> put_view(ChatView)
|> render("show.json", chat: chat) |> render("show.json", chat: chat)
@ -122,11 +122,11 @@ def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{id: id} = para
with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do
cm_refs = cm_refs =
chat chat
|> ChatMessageReference.for_chat_query() |> MessageReference.for_chat_query()
|> Pagination.fetch_paginated(params |> stringify_keys()) |> Pagination.fetch_paginated(params |> stringify_keys())
conn conn
|> put_view(ChatMessageReferenceView) |> put_view(MessageReferenceView)
|> render("index.json", for: user, chat_message_references: cm_refs) |> render("index.json", for: user, chat_message_references: cm_refs)
else else
_ -> _ ->

View file

@ -2,7 +2,7 @@
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.PleromaAPI.ChatMessageReferenceView do defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceView do
use Pleroma.Web, :view use Pleroma.Web, :view
alias Pleroma.User alias Pleroma.User

View file

@ -6,24 +6,24 @@ defmodule Pleroma.Web.PleromaAPI.ChatView do
use Pleroma.Web, :view use Pleroma.Web, :view
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.User alias Pleroma.User
alias Pleroma.Web.CommonAPI.Utils alias Pleroma.Web.CommonAPI.Utils
alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.PleromaAPI.ChatMessageReferenceView alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView
def render("show.json", %{chat: %Chat{} = chat} = opts) do def render("show.json", %{chat: %Chat{} = chat} = opts) do
recipient = User.get_cached_by_ap_id(chat.recipient) recipient = User.get_cached_by_ap_id(chat.recipient)
last_message = opts[:last_message] || ChatMessageReference.last_message_for_chat(chat) last_message = opts[:last_message] || MessageReference.last_message_for_chat(chat)
%{ %{
id: chat.id |> to_string(), id: chat.id |> to_string(),
account: AccountView.render("show.json", Map.put(opts, :user, recipient)), account: AccountView.render("show.json", Map.put(opts, :user, recipient)),
unread: Map.get(chat, :unread) || ChatMessageReference.unread_count_for_chat(chat), unread: Map.get(chat, :unread) || MessageReference.unread_count_for_chat(chat),
last_message: last_message:
last_message && last_message &&
ChatMessageReferenceView.render("show.json", chat_message_reference: last_message), MessageReferenceView.render("show.json", chat_message_reference: last_message),
updated_at: Utils.to_masto_date(chat.updated_at) updated_at: Utils.to_masto_date(chat.updated_at)
} }
end end

View file

@ -6,7 +6,7 @@ defmodule Pleroma.Web.Streamer do
require Logger require Logger
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Config alias Pleroma.Config
alias Pleroma.Conversation.Participation alias Pleroma.Conversation.Participation
alias Pleroma.Notification alias Pleroma.Notification
@ -187,7 +187,7 @@ defp do_stream(topic, %Notification{} = item)
end) end)
end end
defp do_stream(topic, {user, %ChatMessageReference{} = cm_ref}) defp do_stream(topic, {user, %MessageReference{} = cm_ref})
when topic in ["user", "user:pleroma_chat"] do when topic in ["user", "user:pleroma_chat"] do
topic = "#{topic}:#{user.id}" topic = "#{topic}:#{user.id}"

View file

@ -2,11 +2,11 @@
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.ChatMessageReferenceTest do defmodule Pleroma.Chat.MessageReferenceTest do
use Pleroma.DataCase, async: true use Pleroma.DataCase, async: true
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI
import Pleroma.Factory import Pleroma.Factory
@ -21,7 +21,7 @@ test "it returns the last message in a chat" do
{:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id)
message = ChatMessageReference.last_message_for_chat(chat) message = MessageReference.last_message_for_chat(chat)
assert message.object.data["content"] == "ho" assert message.object.data["content"] == "ho"
end end

View file

@ -8,7 +8,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Notification alias Pleroma.Notification
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.Repo alias Pleroma.Repo
@ -391,7 +391,7 @@ test "it streams the created ChatMessage" do
end end
end end
test "it creates a Chat and ChatMessageReferences for the local users and bumps the unread count, except for the author" do test "it creates a Chat and MessageReferences for the local users and bumps the unread count, except for the author" do
author = insert(:user, local: true) author = insert(:user, local: true)
recipient = insert(:user, local: true) recipient = insert(:user, local: true)
@ -431,14 +431,14 @@ test "it creates a Chat and ChatMessageReferences for the local users and bumps
chat = Chat.get(author.id, recipient.ap_id) chat = Chat.get(author.id, recipient.ap_id)
[cm_ref] = ChatMessageReference.for_chat_query(chat) |> Repo.all() [cm_ref] = MessageReference.for_chat_query(chat) |> Repo.all()
assert cm_ref.object.data["content"] == "hey" assert cm_ref.object.data["content"] == "hey"
assert cm_ref.unread == false assert cm_ref.unread == false
chat = Chat.get(recipient.id, author.ap_id) chat = Chat.get(recipient.id, author.ap_id)
[cm_ref] = ChatMessageReference.for_chat_query(chat) |> Repo.all() [cm_ref] = MessageReference.for_chat_query(chat) |> Repo.all()
assert cm_ref.object.data["content"] == "hey" assert cm_ref.object.data["content"] == "hey"
assert cm_ref.unread == true assert cm_ref.unread == true

View file

@ -7,7 +7,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
alias Pleroma.Activity alias Pleroma.Activity
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Notification alias Pleroma.Notification
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.Repo alias Pleroma.Repo
@ -17,7 +17,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.MastodonAPI.NotificationView alias Pleroma.Web.MastodonAPI.NotificationView
alias Pleroma.Web.MastodonAPI.StatusView alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.PleromaAPI.ChatMessageReferenceView alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView
import Pleroma.Factory import Pleroma.Factory
defp test_notifications_rendering(notifications, user, expected_result) do defp test_notifications_rendering(notifications, user, expected_result) do
@ -45,15 +45,14 @@ test "ChatMessage notification" do
object = Object.normalize(activity) object = Object.normalize(activity)
chat = Chat.get(recipient.id, user.ap_id) chat = Chat.get(recipient.id, user.ap_id)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
expected = %{ expected = %{
id: to_string(notification.id), id: to_string(notification.id),
pleroma: %{is_seen: false}, pleroma: %{is_seen: false},
type: "pleroma:chat_mention", type: "pleroma:chat_mention",
account: AccountView.render("show.json", %{user: user, for: recipient}), account: AccountView.render("show.json", %{user: user, for: recipient}),
chat_message: chat_message: MessageReferenceView.render("show.json", %{chat_message_reference: cm_ref}),
ChatMessageReferenceView.render("show.json", %{chat_message_reference: cm_ref}),
created_at: Utils.to_masto_date(notification.inserted_at) created_at: Utils.to_masto_date(notification.inserted_at)
} }

View file

@ -5,7 +5,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do
use Pleroma.Web.ConnCase, async: true use Pleroma.Web.ConnCase, async: true
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.User alias Pleroma.User
alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.ActivityPub
@ -23,7 +23,7 @@ test "it marks one message as read", %{conn: conn, user: user} do
{:ok, _create} = CommonAPI.post_chat_message(other_user, user, "sup part 2") {:ok, _create} = CommonAPI.post_chat_message(other_user, user, "sup part 2")
{:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id)
object = Object.normalize(create, false) object = Object.normalize(create, false)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
assert cm_ref.unread == true assert cm_ref.unread == true
@ -34,7 +34,7 @@ test "it marks one message as read", %{conn: conn, user: user} do
assert result["unread"] == false assert result["unread"] == false
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
assert cm_ref.unread == false assert cm_ref.unread == false
end end
@ -50,7 +50,7 @@ test "it marks all messages in a chat as read", %{conn: conn, user: user} do
{:ok, _create} = CommonAPI.post_chat_message(other_user, user, "sup part 2") {:ok, _create} = CommonAPI.post_chat_message(other_user, user, "sup part 2")
{:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id)
object = Object.normalize(create, false) object = Object.normalize(create, false)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
assert cm_ref.unread == true assert cm_ref.unread == true
@ -61,7 +61,7 @@ test "it marks all messages in a chat as read", %{conn: conn, user: user} do
assert result["unread"] == 0 assert result["unread"] == 0
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
assert cm_ref.unread == false assert cm_ref.unread == false
end end
@ -139,7 +139,7 @@ test "it deletes a message from the chat", %{conn: conn, user: user} do
chat = Chat.get(user.id, recipient.ap_id) chat = Chat.get(user.id, recipient.ap_id)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
# Deleting your own message removes the message and the reference # Deleting your own message removes the message and the reference
result = result =
@ -149,12 +149,12 @@ test "it deletes a message from the chat", %{conn: conn, user: user} do
|> json_response_and_validate_schema(200) |> json_response_and_validate_schema(200)
assert result["id"] == cm_ref.id assert result["id"] == cm_ref.id
refute ChatMessageReference.get_by_id(cm_ref.id) refute MessageReference.get_by_id(cm_ref.id)
assert %{data: %{"type" => "Tombstone"}} = Object.get_by_id(object.id) assert %{data: %{"type" => "Tombstone"}} = Object.get_by_id(object.id)
# Deleting other people's messages just removes the reference # Deleting other people's messages just removes the reference
object = Object.normalize(other_message, false) object = Object.normalize(other_message, false)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
result = result =
conn conn
@ -163,7 +163,7 @@ test "it deletes a message from the chat", %{conn: conn, user: user} do
|> json_response_and_validate_schema(200) |> json_response_and_validate_schema(200)
assert result["id"] == cm_ref.id assert result["id"] == cm_ref.id
refute ChatMessageReference.get_by_id(cm_ref.id) refute MessageReference.get_by_id(cm_ref.id)
assert Object.get_by_id(object.id) assert Object.get_by_id(object.id)
end end
end end

View file

@ -2,15 +2,15 @@
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.PleromaAPI.ChatMessageReferenceViewTest do defmodule Pleroma.Web.PleromaAPI.Chat.MessageReferenceViewTest do
use Pleroma.DataCase use Pleroma.DataCase
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI
alias Pleroma.Web.PleromaAPI.ChatMessageReferenceView alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView
import Pleroma.Factory import Pleroma.Factory
@ -31,9 +31,9 @@ test "it displays a chat message" do
object = Object.normalize(activity) object = Object.normalize(activity)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
chat_message = ChatMessageReferenceView.render("show.json", chat_message_reference: cm_ref) chat_message = MessageReferenceView.render("show.json", chat_message_reference: cm_ref)
assert chat_message[:id] == cm_ref.id assert chat_message[:id] == cm_ref.id
assert chat_message[:content] == "kippis :firefox:" assert chat_message[:content] == "kippis :firefox:"
@ -47,10 +47,9 @@ test "it displays a chat message" do
object = Object.normalize(activity) object = Object.normalize(activity)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
chat_message_two = chat_message_two = MessageReferenceView.render("show.json", chat_message_reference: cm_ref)
ChatMessageReferenceView.render("show.json", chat_message_reference: cm_ref)
assert chat_message_two[:id] == cm_ref.id assert chat_message_two[:id] == cm_ref.id
assert chat_message_two[:content] == "gkgkgk" assert chat_message_two[:content] == "gkgkgk"

View file

@ -6,12 +6,12 @@ defmodule Pleroma.Web.PleromaAPI.ChatViewTest do
use Pleroma.DataCase use Pleroma.DataCase
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Object alias Pleroma.Object
alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI
alias Pleroma.Web.CommonAPI.Utils alias Pleroma.Web.CommonAPI.Utils
alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.PleromaAPI.ChatMessageReferenceView alias Pleroma.Web.PleromaAPI.Chat.MessageReferenceView
alias Pleroma.Web.PleromaAPI.ChatView alias Pleroma.Web.PleromaAPI.ChatView
import Pleroma.Factory import Pleroma.Factory
@ -55,9 +55,9 @@ test "it represents a chat" do
represented_chat = ChatView.render("show.json", chat: chat) represented_chat = ChatView.render("show.json", chat: chat)
cm_ref = ChatMessageReference.for_chat_and_object(chat, chat_message) cm_ref = MessageReference.for_chat_and_object(chat, chat_message)
assert represented_chat[:last_message] == assert represented_chat[:last_message] ==
ChatMessageReferenceView.render("show.json", chat_message_reference: cm_ref) MessageReferenceView.render("show.json", chat_message_reference: cm_ref)
end end
end end

View file

@ -8,7 +8,7 @@ defmodule Pleroma.Web.StreamerTest do
import Pleroma.Factory import Pleroma.Factory
alias Pleroma.Chat alias Pleroma.Chat
alias Pleroma.ChatMessageReference alias Pleroma.Chat.MessageReference
alias Pleroma.Conversation.Participation alias Pleroma.Conversation.Participation
alias Pleroma.List alias Pleroma.List
alias Pleroma.Object alias Pleroma.Object
@ -155,7 +155,7 @@ test "it sends chat messages to the 'user:pleroma_chat' stream", %{user: user} d
{:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey cirno") {:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey cirno")
object = Object.normalize(create_activity, false) object = Object.normalize(create_activity, false)
chat = Chat.get(user.id, other_user.ap_id) chat = Chat.get(user.id, other_user.ap_id)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
cm_ref = %{cm_ref | chat: chat, object: object} cm_ref = %{cm_ref | chat: chat, object: object}
Streamer.get_topic_and_add_socket("user:pleroma_chat", user) Streamer.get_topic_and_add_socket("user:pleroma_chat", user)
@ -173,7 +173,7 @@ test "it sends chat messages to the 'user' stream", %{user: user} do
{:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey cirno") {:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey cirno")
object = Object.normalize(create_activity, false) object = Object.normalize(create_activity, false)
chat = Chat.get(user.id, other_user.ap_id) chat = Chat.get(user.id, other_user.ap_id)
cm_ref = ChatMessageReference.for_chat_and_object(chat, object) cm_ref = MessageReference.for_chat_and_object(chat, object)
cm_ref = %{cm_ref | chat: chat, object: object} cm_ref = %{cm_ref | chat: chat, object: object}
Streamer.get_topic_and_add_socket("user", user) Streamer.get_topic_and_add_socket("user", user)