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