Module: JsonapiCompliable::Scope::Filterable

Included in:
DefaultFilter, Filter
Defined in:
lib/jsonapi_compliable/scope/filterable.rb

Instance Method Summary collapse

Instance Method Details

#filter_paramObject



19
20
21
# File 'lib/jsonapi_compliable/scope/filterable.rb', line 19

def filter_param
  params[:filter] || {}
end

#find_filter(name) ⇒ Object



3
4
5
6
7
# File 'lib/jsonapi_compliable/scope/filterable.rb', line 3

def find_filter(name)
  find_filter!(name)
rescue JsonapiCompliable::Errors::BadFilter
  nil
end

#find_filter!(name) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/jsonapi_compliable/scope/filterable.rb', line 9

def find_filter!(name)
  filter_name, filter_value = \
    dsl.filters.find { |_name, opts| opts[:aliases].include?(name.to_sym) }
  raise JsonapiCompliable::Errors::BadFilter unless filter_name
  if guard = filter_value[:if]
    raise JsonapiCompliable::Errors::BadFilter if controller.send(guard) == false
  end
  { filter_name => filter_value }
end