module JsonapiCompliable::Scoping::Filterable
@api private
Public Instance Methods
filter_param()
click to toggle source
@api private
# File lib/jsonapi_compliable/scoping/filterable.rb, line 23 def filter_param query_hash[:filter] end
find_filter(name)
click to toggle source
@api private
# File lib/jsonapi_compliable/scoping/filterable.rb, line 5 def find_filter(name) find_filter!(name) rescue JsonapiCompliable::Errors::BadFilter nil end
find_filter!(name)
click to toggle source
@api private
# File lib/jsonapi_compliable/scoping/filterable.rb, line 12 def find_filter!(name) filter_name, filter_value = \ resource.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 resource.context.send(guard) == false end { filter_name => filter_value } end
missing_required_filters()
click to toggle source
# File lib/jsonapi_compliable/scoping/filterable.rb, line 27 def missing_required_filters required_filters.keys - filter_param.keys end
required_filters()
click to toggle source
# File lib/jsonapi_compliable/scoping/filterable.rb, line 31 def required_filters resource.filters.select do |_name, opts| opts[:required].respond_to?(:call) ? opts[:required].call(resource.context) : opts[:required] end end
required_filters_provided?()
click to toggle source
# File lib/jsonapi_compliable/scoping/filterable.rb, line 37 def required_filters_provided? missing_required_filters.empty? end