module Graphiti::Scoping::Filterable

@api private

Public Instance Methods

dependent_filters() click to toggle source
# File lib/graphiti/scoping/filterable.rb, line 45
def dependent_filters
  resource.filters.select do |k, v|
    v[:dependencies].present?
  end
end
filter_param() click to toggle source

@api private

# File lib/graphiti/scoping/filterable.rb, line 18
def filter_param
  query_hash[:filter] || {}
end
find_filter(name) click to toggle source

@api private

# File lib/graphiti/scoping/filterable.rb, line 5
def find_filter(name)
  find_filter!(name)
rescue Graphiti::Errors::AttributeError
  nil
end
find_filter!(name) click to toggle source

@api private

# File lib/graphiti/scoping/filterable.rb, line 12
def find_filter!(name)
  resource.class.get_attr!(name, :filterable, request: true)
  {name => resource.filters[name]}
end
missing_dependent_filters() click to toggle source
# File lib/graphiti/scoping/filterable.rb, line 32
def missing_dependent_filters
  [].tap do |arr|
    filter_param.each_pair do |key, value|
      if (df = dependent_filters[key])
        missing = df[:dependencies] - filter_param.keys
        unless missing.length.zero?
          arr << {filter: df, missing: missing}
        end
      end
    end
  end
end
missing_required_filters() click to toggle source
# File lib/graphiti/scoping/filterable.rb, line 22
def missing_required_filters
  required_filters - filter_param.keys
end
required_filters() click to toggle source
# File lib/graphiti/scoping/filterable.rb, line 26
def required_filters
  resource.filters.map { |k, v|
    k if v[:required]
  }.compact
end