Fix timeline emoji_reactions N+1 problem
This commit is contained in:
parent
7c387becb6
commit
c0ff0754a3
12 changed files with 84 additions and 16 deletions
|
@ -122,7 +122,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def emoji_reactions
|
||||
object.emoji_reactions_grouped_by_name(current_user&.account)
|
||||
show_emoji_reaction? ? object.emoji_reactions_grouped_by_name(current_user&.account, permitted_account_ids: emoji_reaction_permitted_account_ids) : []
|
||||
end
|
||||
|
||||
def emoji_reactions_count
|
||||
|
@ -131,7 +131,17 @@ class REST::StatusSerializer < ActiveModel::Serializer
|
|||
|
||||
object.account.emoji_reaction_policy == :allow ? object.emoji_reactions_count : 0
|
||||
else
|
||||
object.account.show_emoji_reaction?(current_user.account) ? object.emoji_reactions_count : 0
|
||||
show_emoji_reaction? ? object.emoji_reactions_count : 0
|
||||
end
|
||||
end
|
||||
|
||||
def show_emoji_reaction?
|
||||
if relationships
|
||||
return true if relationships.emoji_reaction_allows_map.nil?
|
||||
|
||||
relationships.emoji_reaction_allows_map[object.account_id] || false
|
||||
else
|
||||
object.account.show_emoji_reaction?(current_user.account)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -211,6 +221,10 @@ class REST::StatusSerializer < ActiveModel::Serializer
|
|||
instance_options && instance_options[:relationships]
|
||||
end
|
||||
|
||||
def emoji_reaction_permitted_account_ids
|
||||
current_user.present? && instance_options && instance_options[:emoji_reaction_permitted_account_ids]&.permitted_account_ids
|
||||
end
|
||||
|
||||
class ApplicationSerializer < ActiveModel::Serializer
|
||||
attributes :name, :website
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue