Eager loading fixes for api/ controllers (#28848)
		
	This commit is contained in:
		
					parent
					
						
							
								ceade78182
							
						
					
				
			
			
				commit
				
					
						c0e8e457ab
					
				
			
		
					 13 changed files with 14 additions and 14 deletions
				
			
		|  | @ -30,7 +30,7 @@ class Api::V1::Accounts::FollowerAccountsController < Api::BaseController | |||
|   end | ||||
| 
 | ||||
|   def default_accounts | ||||
|     Account.includes(:active_relationships, :account_stat).references(:active_relationships) | ||||
|     Account.includes(:active_relationships, :account_stat, :user).references(:active_relationships) | ||||
|   end | ||||
| 
 | ||||
|   def paginated_follows | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ class Api::V1::Accounts::FollowingAccountsController < Api::BaseController | |||
|   end | ||||
| 
 | ||||
|   def default_accounts | ||||
|     Account.includes(:passive_relationships, :account_stat).references(:passive_relationships) | ||||
|     Account.includes(:passive_relationships, :account_stat, :user).references(:passive_relationships) | ||||
|   end | ||||
| 
 | ||||
|   def paginated_follows | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ class Api::V1::BlocksController < Api::BaseController | |||
|   end | ||||
| 
 | ||||
|   def paginated_blocks | ||||
|     @paginated_blocks ||= Block.eager_load(target_account: :account_stat) | ||||
|     @paginated_blocks ||= Block.eager_load(target_account: [:account_stat, :user]) | ||||
|                                .joins(:target_account) | ||||
|                                .merge(Account.without_suspended) | ||||
|                                .where(account: current_account) | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ class Api::V1::DirectoriesController < Api::BaseController | |||
|       scope.merge!(local_account_scope) if local_accounts? | ||||
|       scope.merge!(account_exclusion_scope) if current_account | ||||
|       scope.merge!(account_domain_block_scope) if current_account && !local_accounts? | ||||
|     end | ||||
|     end.includes(:account_stat, user: :role) | ||||
|   end | ||||
| 
 | ||||
|   def local_accounts? | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ class Api::V1::EndorsementsController < Api::BaseController | |||
|   end | ||||
| 
 | ||||
|   def endorsed_accounts | ||||
|     current_account.endorsed_accounts.includes(:account_stat).without_suspended | ||||
|     current_account.endorsed_accounts.includes(:account_stat, :user).without_suspended | ||||
|   end | ||||
| 
 | ||||
|   def insert_pagination_headers | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ class Api::V1::FollowRequestsController < Api::BaseController | |||
|   end | ||||
| 
 | ||||
|   def default_accounts | ||||
|     Account.without_suspended.includes(:follow_requests, :account_stat).references(:follow_requests) | ||||
|     Account.without_suspended.includes(:follow_requests, :account_stat, :user).references(:follow_requests) | ||||
|   end | ||||
| 
 | ||||
|   def paginated_follow_requests | ||||
|  |  | |||
|  | @ -37,9 +37,9 @@ class Api::V1::Lists::AccountsController < Api::BaseController | |||
| 
 | ||||
|   def load_accounts | ||||
|     if unlimited? | ||||
|       @list.accounts.without_suspended.includes(:account_stat).all | ||||
|       @list.accounts.without_suspended.includes(:account_stat, :user).all | ||||
|     else | ||||
|       @list.accounts.without_suspended.includes(:account_stat).paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id]) | ||||
|       @list.accounts.without_suspended.includes(:account_stat, :user).paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id]) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ class Api::V1::MutesController < Api::BaseController | |||
|   end | ||||
| 
 | ||||
|   def paginated_mutes | ||||
|     @paginated_mutes ||= Mute.eager_load(:target_account) | ||||
|     @paginated_mutes ||= Mute.eager_load(target_account: [:account_stat, :user]) | ||||
|                              .joins(:target_account) | ||||
|                              .merge(Account.without_suspended) | ||||
|                              .where(account: current_account) | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ class Api::V1::Statuses::FavouritedByAccountsController < Api::V1::Statuses::Bas | |||
|   def default_accounts | ||||
|     Account | ||||
|       .without_suspended | ||||
|       .includes(:favourites, :account_stat) | ||||
|       .includes(:favourites, :account_stat, :user) | ||||
|       .references(:favourites) | ||||
|       .where(favourites: { status_id: @status.id }) | ||||
|   end | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ class Api::V1::Statuses::RebloggedByAccountsController < Api::V1::Statuses::Base | |||
|   end | ||||
| 
 | ||||
|   def default_accounts | ||||
|     Account.without_suspended.includes(:statuses, :account_stat).references(:statuses) | ||||
|     Account.without_suspended.includes(:statuses, :account_stat, :user).references(:statuses) | ||||
|   end | ||||
| 
 | ||||
|   def paginated_statuses | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ class Api::V2::FiltersController < Api::BaseController | |||
|   private | ||||
| 
 | ||||
|   def set_filters | ||||
|     @filters = current_account.custom_filters.includes(:keywords) | ||||
|     @filters = current_account.custom_filters.includes(:keywords, :statuses) | ||||
|   end | ||||
| 
 | ||||
|   def set_filter | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ class AccountSuggestions | |||
|       # a complicated query on this end. | ||||
| 
 | ||||
|       account_ids  = account_ids_with_sources[offset, limit] | ||||
|       accounts_map = Account.where(id: account_ids.map(&:first)).includes(:account_stat).index_by(&:id) | ||||
|       accounts_map = Account.where(id: account_ids.map(&:first)).includes(:account_stat, :user).index_by(&:id) | ||||
| 
 | ||||
|       account_ids.filter_map do |(account_id, source)| | ||||
|         next unless accounts_map.key?(account_id) | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ class Report < ApplicationRecord | |||
| 
 | ||||
|   scope :unresolved, -> { where(action_taken_at: nil) } | ||||
|   scope :resolved,   -> { where.not(action_taken_at: nil) } | ||||
|   scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with({ user: [:invite_request, :invite] })) } | ||||
|   scope :with_accounts, -> { includes([:account, :target_account, :action_taken_by_account, :assigned_account].index_with([:account_stat, { user: [:invite_request, :invite, :ips] }])) } | ||||
| 
 | ||||
|   # A report is considered local if the reporter is local | ||||
|   delegate :local?, to: :account | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue