Method: JSONAPI::Resource.verify_filter

Defined in:
lib/jsonapi/resource.rb

.verify_filter(filter, raw, context = nil) ⇒ Object



790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
# File 'lib/jsonapi/resource.rb', line 790

def verify_filter(filter, raw, context = nil)
  filter_values = []
  if raw.present?
    filter_values += raw.is_a?(String) ? CSV.parse_line(raw) : [raw]
  end

  strategy = _allowed_filters.fetch(filter, Hash.new)[:verify]

  if strategy
    if strategy.is_a?(Symbol) || strategy.is_a?(String)
      values = send(strategy, filter_values, context)
    else
      values = strategy.call(filter_values, context)
    end
    [filter, values]
  else
    if is_filter_relationship?(filter)
      verify_relationship_filter(filter, filter_values, context)
    else
      verify_custom_filter(filter, filter_values, context)
    end
  end
end