Do not use permitted_for scope when querying pinned statuses (#7510)
permitted_for scope is slow when combined with pinned status scope. Fortunately permitted_for scope can safely be removed because a pinned status is always public.
This commit is contained in:
		
							parent
							
								
									55fd55714a
								
							
						
					
					
						commit
						77cd6b5096
					
				
					 1 changed files with 7 additions and 9 deletions
				
			
		|  | @ -27,19 +27,17 @@ class Api::V1::Accounts::StatusesController < Api::BaseController | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def account_statuses |   def account_statuses | ||||||
|     default_statuses.tap do |statuses| |     statuses = truthy_param?(:pinned) ? pinned_scope : permitted_account_statuses | ||||||
|       statuses.merge!(only_media_scope) if truthy_param?(:only_media) |     statuses = statuses.paginate_by_max_id( | ||||||
|       statuses.merge!(pinned_scope) if truthy_param?(:pinned) |  | ||||||
|       statuses.merge!(no_replies_scope) if truthy_param?(:exclude_replies) |  | ||||||
|     end |  | ||||||
|   end |  | ||||||
| 
 |  | ||||||
|   def default_statuses |  | ||||||
|     permitted_account_statuses.paginate_by_max_id( |  | ||||||
|       limit_param(DEFAULT_STATUSES_LIMIT), |       limit_param(DEFAULT_STATUSES_LIMIT), | ||||||
|       params[:max_id], |       params[:max_id], | ||||||
|       params[:since_id] |       params[:since_id] | ||||||
|     ) |     ) | ||||||
|  | 
 | ||||||
|  |     statuses.merge!(only_media_scope) if truthy_param?(:only_media) | ||||||
|  |     statuses.merge!(no_replies_scope) if truthy_param?(:exclude_replies) | ||||||
|  | 
 | ||||||
|  |     statuses | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def permitted_account_statuses |   def permitted_account_statuses | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue