@ -19,53 +19,13 @@ class RelationshipsController < ApplicationController
rescue ActionController :: ParameterMissing
rescue ActionController :: ParameterMissing
# Do nothing
# Do nothing
ensure
ensure
redirect_to relationships_path ( current _params)
redirect_to relationships_path ( filter _params)
end
end
private
private
def set_accounts
def set_accounts
@accounts = relationships_scope . page ( params [ :page ] ) . per ( 40 )
end
def relationships_scope
scope = begin
if following_relationship?
current_account . following . eager_load ( :account_stat ) . reorder ( nil )
else
current_account . followers . eager_load ( :account_stat ) . reorder ( nil )
end
end
scope . merge! ( Follow . recent ) if params [ :order ] . blank? || params [ :order ] == 'recent'
scope . merge! ( Account . by_recent_status ) if params [ :order ] == 'active'
scope . merge! ( mutual_relationship_scope ) if mutual_relationship?
scope . merge! ( moved_account_scope ) if params [ :status ] == 'moved'
scope . merge! ( primary_account_scope ) if params [ :status ] == 'primary'
scope . merge! ( by_domain_scope ) if params [ :by_domain ] . present?
scope . merge! ( dormant_account_scope ) if params [ :activity ] == 'dormant'
scope
end
def mutual_relationship_scope
Account . where ( id : current_account . following )
end
def moved_account_scope
Account . where . not ( moved_to_account_id : nil )
end
def primary_account_scope
Account . where ( moved_to_account_id : nil )
end
def dormant_account_scope
AccountStat . where ( last_status_at : nil ) . or ( AccountStat . where ( AccountStat . arel_table [ :last_status_at ] . lt ( 1 . month . ago ) ) )
end
def by_domain_scope
Account . where ( domain : params [ :by_domain ] )
@accounts = RelationshipFilter . new ( current_account , filter_params ) . results . page ( params [ :page ] ) . per ( 40 )
end
end
def form_account_batch_params
def form_account_batch_params
@ -84,7 +44,7 @@ class RelationshipsController < ApplicationController
params [ :relationship ] == 'followed_by'
params [ :relationship ] == 'followed_by'
end
end
def current _params
def filter _params
params . slice ( :page , * RelationshipFilter :: KEYS ) . permit ( :page , * RelationshipFilter :: KEYS )
params . slice ( :page , * RelationshipFilter :: KEYS ) . permit ( :page , * RelationshipFilter :: KEYS )
end
end