class Might::FilterParametersValidator

Validates filters and raises error if one of them is invalid

Attributes

app[R]

Public Class Methods

new(app) click to toggle source

@param app [#call]

# File lib/might/filter_parameters_validator.rb, line 7
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source

@param env [<{:filter => <Might::FilterParameter>, Array>}] @return [<{:filter => <Might::FilterParameter>, Array>}]

# File lib/might/filter_parameters_validator.rb, line 14
def call(env)
  params, errors = env

  invalid_filters = Array(params[:filter]).select(&:invalid?)
  messages = invalid_filters.flat_map(&:errors)

  app.call([params, errors.concat(messages)])
end