forked from AkkomaGang/akkoma
Merge branch '2323-accounts-relationships-hotfix' into 'develop'
[#2323] Fixed /accounts/relationships Closes pleroma-fe#820 See merge request pleroma/pleroma!2347
This commit is contained in:
commit
7879369e4d
4 changed files with 15 additions and 8 deletions
|
@ -13,16 +13,18 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
||||||
alias Pleroma.Web.MediaProxy
|
alias Pleroma.Web.MediaProxy
|
||||||
|
|
||||||
def render("index.json", %{users: users} = opts) do
|
def render("index.json", %{users: users} = opts) do
|
||||||
|
reading_user = opts[:for]
|
||||||
|
|
||||||
relationships_opt =
|
relationships_opt =
|
||||||
cond do
|
cond do
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(reading_user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
UserRelationship.view_relationships_option(opts[:for], users)
|
UserRelationship.view_relationships_option(reading_user, users)
|
||||||
end
|
end
|
||||||
|
|
||||||
opts = Map.put(opts, :relationships, relationships_opt)
|
opts = Map.put(opts, :relationships, relationships_opt)
|
||||||
|
@ -143,7 +145,7 @@ def render("relationships.json", %{user: user, targets: targets} = opts) do
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
|
|
|
@ -36,7 +36,7 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(reading_user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
|
|
|
@ -72,6 +72,8 @@ defp reblogged?(activity, user) do
|
||||||
end
|
end
|
||||||
|
|
||||||
def render("index.json", opts) do
|
def render("index.json", opts) do
|
||||||
|
reading_user = opts[:for]
|
||||||
|
|
||||||
# To do: check AdminAPIControllerTest on the reasons behind nil activities in the list
|
# To do: check AdminAPIControllerTest on the reasons behind nil activities in the list
|
||||||
activities = Enum.filter(opts.activities, & &1)
|
activities = Enum.filter(opts.activities, & &1)
|
||||||
replied_to_activities = get_replied_to_activities(activities)
|
replied_to_activities = get_replied_to_activities(activities)
|
||||||
|
@ -82,8 +84,8 @@ def render("index.json", opts) do
|
||||||
|> Enum.map(&Object.normalize(&1).data["id"])
|
|> Enum.map(&Object.normalize(&1).data["id"])
|
||||||
|> Activity.create_by_object_ap_id()
|
|> Activity.create_by_object_ap_id()
|
||||||
|> Activity.with_preloaded_object(:left)
|
|> Activity.with_preloaded_object(:left)
|
||||||
|> Activity.with_preloaded_bookmark(opts[:for])
|
|> Activity.with_preloaded_bookmark(reading_user)
|
||||||
|> Activity.with_set_thread_muted_field(opts[:for])
|
|> Activity.with_set_thread_muted_field(reading_user)
|
||||||
|> Repo.all()
|
|> Repo.all()
|
||||||
|
|
||||||
relationships_opt =
|
relationships_opt =
|
||||||
|
@ -91,13 +93,13 @@ def render("index.json", opts) do
|
||||||
Map.has_key?(opts, :relationships) ->
|
Map.has_key?(opts, :relationships) ->
|
||||||
opts[:relationships]
|
opts[:relationships]
|
||||||
|
|
||||||
is_nil(opts[:for]) ->
|
is_nil(reading_user) ->
|
||||||
UserRelationship.view_relationships_option(nil, [])
|
UserRelationship.view_relationships_option(nil, [])
|
||||||
|
|
||||||
true ->
|
true ->
|
||||||
actors = Enum.map(activities ++ parent_activities, &get_user(&1.data["actor"]))
|
actors = Enum.map(activities ++ parent_activities, &get_user(&1.data["actor"]))
|
||||||
|
|
||||||
UserRelationship.view_relationships_option(opts[:for], actors)
|
UserRelationship.view_relationships_option(reading_user, actors)
|
||||||
end
|
end
|
||||||
|
|
||||||
opts =
|
opts =
|
||||||
|
|
|
@ -209,6 +209,9 @@ defp test_relationship_rendering(user, other_user, expected_result) do
|
||||||
relationships_opt = UserRelationship.view_relationships_option(user, [other_user])
|
relationships_opt = UserRelationship.view_relationships_option(user, [other_user])
|
||||||
opts = Map.put(opts, :relationships, relationships_opt)
|
opts = Map.put(opts, :relationships, relationships_opt)
|
||||||
assert expected_result == AccountView.render("relationship.json", opts)
|
assert expected_result == AccountView.render("relationship.json", opts)
|
||||||
|
|
||||||
|
assert [expected_result] ==
|
||||||
|
AccountView.render("relationships.json", %{user: user, targets: [other_user]})
|
||||||
end
|
end
|
||||||
|
|
||||||
@blank_response %{
|
@blank_response %{
|
||||||
|
|
Loading…
Reference in a new issue