2017-09-13 10:30:07 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class InstanceFilter
|
2020-01-20 14:55:03 +00:00
|
|
|
KEYS = %i(
|
|
|
|
limited
|
|
|
|
by_domain
|
|
|
|
).freeze
|
|
|
|
|
2017-09-13 10:30:07 +00:00
|
|
|
attr_reader :params
|
|
|
|
|
|
|
|
def initialize(params)
|
|
|
|
@params = params
|
|
|
|
end
|
|
|
|
|
|
|
|
def results
|
2019-01-08 12:39:49 +00:00
|
|
|
if params[:limited].present?
|
2019-02-18 13:59:19 +00:00
|
|
|
scope = DomainBlock
|
|
|
|
scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
|
|
|
|
scope.order(id: :desc)
|
2019-07-30 09:10:46 +00:00
|
|
|
elsif params[:allowed].present?
|
|
|
|
scope = DomainAllow
|
|
|
|
scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
|
|
|
|
scope.order(id: :desc)
|
2017-09-13 10:30:07 +00:00
|
|
|
else
|
2019-02-18 13:59:19 +00:00
|
|
|
scope = Account.remote
|
|
|
|
scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
|
|
|
|
scope.by_domain_accounts
|
2017-09-13 10:30:07 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|