class HQ::GraphQL::Filters
Constants
- BOOLEAN_VALUES
Attributes
filters[R]
model[R]
Public Class Methods
new(filters, model)
click to toggle source
# File lib/hq/graphql/filters.rb, line 17 def initialize(filters, model) @filters = Array(filters).map { |filter| Filter.for(filter, table: model.arel_table) } @model = model end
supported?(column)
click to toggle source
# File lib/hq/graphql/filters.rb, line 11 def self.supported?(column) !!Filter.class_from_column(column) end
Public Instance Methods
to_scope()
click to toggle source
# File lib/hq/graphql/filters.rb, line 33 def to_scope filters.reduce(model.all) do |s, filter| s.where(filter.to_arel) end end
validate!()
click to toggle source
# File lib/hq/graphql/filters.rb, line 22 def validate! filters.each(&:validate) errors = filters.map do |filter| filter.display_error_message end.flatten.uniq if errors.any? raise ::GraphQL::ExecutionError, errors.join(", ") end end