From 23c46f7e72701b773d87b825526450e5f4ec6322 Mon Sep 17 00:00:00 2001
From: lain <lain@soykaf.club>
Date: Mon, 12 Aug 2019 12:51:08 +0200
Subject: [PATCH] Conversations: Use 'recipients' for accounts in conversation
 view.

According to gargron, this is the intended usage.
---
 .../web/mastodon_api/views/conversation_view.ex   | 15 +++------------
 test/web/mastodon_api/conversation_view_test.exs  |  6 ------
 .../pleroma_api/pleroma_api_controller_test.exs   |  8 ++++----
 3 files changed, 7 insertions(+), 22 deletions(-)

diff --git a/lib/pleroma/web/mastodon_api/views/conversation_view.ex b/lib/pleroma/web/mastodon_api/views/conversation_view.ex
index 5adaecdb0..4a81f0248 100644
--- a/lib/pleroma/web/mastodon_api/views/conversation_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/conversation_view.ex
@@ -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 @@ def render("participation.json", %{participation: participation, user: user}) 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 @@ def render("participation.json", %{participation: participation, user: user}) 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
diff --git a/test/web/mastodon_api/conversation_view_test.exs b/test/web/mastodon_api/conversation_view_test.exs
index e32cde5a8..27f668d9f 100644
--- a/test/web/mastodon_api/conversation_view_test.exs
+++ b/test/web/mastodon_api/conversation_view_test.exs
@@ -30,11 +30,5 @@ test "represents a Mastodon Conversation entity" 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
diff --git a/test/web/pleroma_api/pleroma_api_controller_test.exs b/test/web/pleroma_api/pleroma_api_controller_test.exs
index 7c75fb229..56bc1572c 100644
--- a/test/web/pleroma_api/pleroma_api_controller_test.exs
+++ b/test/web/pleroma_api/pleroma_api_controller_test.exs
@@ -67,10 +67,10 @@ test "PATCH /api/v1/pleroma/conversations/:id", %{conn: conn} 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