# 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