Commit 6b793d3f authored by Ivan Tashkinov's avatar Ivan Tashkinov

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
Pipeline #23962 passed with stages
in 3 minutes and 43 seconds
......@@ -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 =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment