Skip to content
Snippets Groups Projects
Commit 6b793d3f authored by Ivan Tashkinov's avatar Ivan Tashkinov
Browse files

Ensured no auxiliary computations (actors list preparation etc.) related to...

Ensured no auxiliary computations (actors list preparation etc.) related to relationships preloading if no user is present (for statuses / accounts / relationships rendering).
parent 112101ca
No related branches found
No related tags found
No related merge requests found
......@@ -14,10 +14,15 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
def render("index.json", %{users: users} = opts) do
relationships_opt =
if Map.has_key?(opts, :relationships) do
opts[:relationships]
else
UserRelationship.view_relationships_option(opts[:for], users)
cond do
Map.has_key?(opts, :relationships) ->
opts[:relationships]
is_nil(opts[:for]) ->
UserRelationship.view_relationships_option(nil, [])
true ->
UserRelationship.view_relationships_option(opts[:for], users)
end
opts = Map.put(opts, :relationships, relationships_opt)
......@@ -134,10 +139,15 @@ def render(
def render("relationships.json", %{user: user, targets: targets} = opts) do
relationships_opt =
if Map.has_key?(opts, :relationships) do
opts[:relationships]
else
UserRelationship.view_relationships_option(user, targets)
cond do
Map.has_key?(opts, :relationships) ->
opts[:relationships]
is_nil(opts[:for]) ->
UserRelationship.view_relationships_option(nil, [])
true ->
UserRelationship.view_relationships_option(user, targets)
end
render_opts = %{as: :target, user: user, relationships: relationships_opt}
......
......@@ -32,21 +32,26 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op
|> Pleroma.Repo.all()
relationships_opt =
if Map.has_key?(opts, :relationships) do
opts[:relationships]
else
move_activities_targets =
activities
|> Enum.filter(&(Activity.mastodon_notification_type(&1) == "move"))
|> Enum.map(&User.get_cached_by_ap_id(&1.data["target"]))
actors =
activities
|> Enum.map(fn a -> User.get_cached_by_ap_id(a.data["actor"]) end)
|> Enum.filter(& &1)
|> Kernel.++(move_activities_targets)
UserRelationship.view_relationships_option(reading_user, actors)
cond do
Map.has_key?(opts, :relationships) ->
opts[:relationships]
is_nil(opts[:for]) ->
UserRelationship.view_relationships_option(nil, [])
true ->
move_activities_targets =
activities
|> Enum.filter(&(Activity.mastodon_notification_type(&1) == "move"))
|> Enum.map(&User.get_cached_by_ap_id(&1.data["target"]))
actors =
activities
|> Enum.map(fn a -> User.get_cached_by_ap_id(a.data["actor"]) end)
|> Enum.filter(& &1)
|> Kernel.++(move_activities_targets)
UserRelationship.view_relationships_option(reading_user, actors)
end
opts = %{
......
......@@ -87,11 +87,17 @@ def render("index.json", opts) do
|> Repo.all()
relationships_opt =
if Map.has_key?(opts, :relationships) do
opts[:relationships]
else
actors = Enum.map(activities ++ parent_activities, &get_user(&1.data["actor"]))
UserRelationship.view_relationships_option(opts[:for], actors)
cond do
Map.has_key?(opts, :relationships) ->
opts[:relationships]
is_nil(opts[:for]) ->
UserRelationship.view_relationships_option(nil, [])
true ->
actors = Enum.map(activities ++ parent_activities, &get_user(&1.data["actor"]))
UserRelationship.view_relationships_option(opts[:for], actors)
end
opts =
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment