module Jsonapi::Filter::ClassMethods

Public Instance Methods

apply_filter(params) click to toggle source
# File lib/jsonapi/scopes/filters.rb, line 17
def apply_filter(params)
  records = all
  filtering_params = params.dig(:filter) || {}

  filtering_params.each do |key, value|
    value = value.to_s.split(',').reject(&:blank?) if value.include?(',')

    raise InvalidAttributeError, "#{key} is not valid as filter attribute." unless @filters.include?(key.to_sym)

    records = records.public_send(key, value)
  end

  records
end
filter(name, *args) click to toggle source
# File lib/jsonapi/scopes/filters.rb, line 12
def filter(name, *args)
  scope(name, *args)
  @filters << name
end