chinwagsocial/app/models/account_filter.rb
Matt Jankowski 3a9eb81a80 Admin accounts controller cleanup (#1664)
* Remove unused account_params method in admin/accounts controller

* Introduce AccountFilter to find accounts

* Use AccountFilter in admin/accounts controller

* Use more restful routes admin silence and suspension area

* Add admin/silences and admin/suspensions controllers
2017-04-13 13:04:23 +02:00

37 lines
641 B
Ruby

# frozen_string_literal: true
class AccountFilter
attr_reader :params
def initialize(params)
@params = params
end
def results
scope = Account.alphabetic
params.each do |key, value|
scope = scope.merge scope_for(key, value)
end
scope
end
def scope_for(key, value)
case key
when /local/
Account.local
when /remote/
Account.remote
when /by_domain/
Account.where(domain: value)
when /silenced/
Account.silenced
when /recent/
Account.recent
when /suspended/
Account.suspended
else
raise "Unknown filter: #{key}"
end
end
end