Conversations: Use 'recipients' for accounts in conversation view.
authorlain <lain@soykaf.club>
Mon, 12 Aug 2019 10:51:08 +0000 (12:51 +0200)
committerlain <lain@soykaf.club>
Mon, 12 Aug 2019 10:51:08 +0000 (12:51 +0200)
According to gargron, this is the intended usage.

lib/pleroma/web/mastodon_api/views/conversation_view.ex
test/web/mastodon_api/conversation_view_test.exs
test/web/pleroma_api/pleroma_api_controller_test.exs

index 5adaecdb03e41eb7afb31eb63661a0b3c44a6157..4a81f024847ccfdaa53996333df50b113b9139f7 100644 (file)
@@ -12,7 +12,7 @@ defmodule Pleroma.Web.MastodonAPI.ConversationView do
   alias Pleroma.Web.MastodonAPI.StatusView
 
   def render("participation.json", %{participation: participation, user: user}) do
-    participation = Repo.preload(participation, conversation: :users, recipients: [])
+    participation = Repo.preload(participation, conversation: [], recipients: [])
 
     last_activity_id =
       with nil <- participation.last_activity_id do
@@ -28,7 +28,7 @@ defmodule Pleroma.Web.MastodonAPI.ConversationView do
 
     # Conversations return all users except the current user.
     users =
-      participation.conversation.users
+      participation.recipients
       |> Enum.reject(&(&1.id == user.id))
 
     accounts =
@@ -37,20 +37,11 @@ defmodule Pleroma.Web.MastodonAPI.ConversationView do
         as: :user
       })
 
-    recipients =
-      AccountView.render("accounts.json", %{
-        users: participation.recipients,
-        as: :user
-      })
-
     %{
       id: participation.id |> to_string(),
       accounts: accounts,
       unread: !participation.read,
-      last_status: last_status,
-      pleroma: %{
-        recipients: recipients
-      }
+      last_status: last_status
     }
   end
 end
index e32cde5a8ba2e8deaefe68a78337f75d25b2ca8a..27f668d9fc2c6c7f37a4a73bbf44bdca46a870c6 100644 (file)
@@ -30,11 +30,5 @@ defmodule Pleroma.Web.MastodonAPI.ConversationViewTest do
 
     assert [account] = conversation.accounts
     assert account.id == other_user.id
-
-    assert recipients = conversation.pleroma.recipients
-    recipient_ids = recipients |> Enum.map(& &1.id)
-
-    assert user.id in recipient_ids
-    assert other_user.id in recipient_ids
   end
 end
index 7c75fb2298c8f4d8efa00947f75d3689cfdab9eb..56bc1572cc8ca2ca8f54cc83ed69e6c0c203ad4a 100644 (file)
@@ -67,10 +67,10 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do
 
     assert result["id"] == participation.id |> to_string
 
-    assert recipients = result["pleroma"]["recipients"]
-    recipient_ids = Enum.map(recipients, & &1["id"])
+    [participation] = Participation.for_user(user)
+    participation = Repo.preload(participation, :recipients)
 
-    assert user.id in recipient_ids
-    assert other_user.id in recipient_ids
+    assert user in participation.recipients
+    assert other_user in participation.recipients
   end
 end