module HyperTrack::ParamsValidator
Public Class Methods
valid_args?(params, required_fields, valid_attr_values)
click to toggle source
# File lib/hypertrack/params_validator.rb, line 6 def valid_args?(params, required_fields, valid_attr_values) unless valid_params_object?(params) raise HyperTrack::InvalidParameters.new("Error: Expected a Hash. Got: #{params}") end params = Util.symbolize_keys(params) missing_params = missing_required_fields(params, required_fields) if missing_params.length > 0 raise HyperTrack::InvalidParameters.new("Request is missing required params - #{missing_params}") end params.each do |name, value| next if Util.blank?(value) && valid_attr_values[name][:allow_nil] next if valid_attr_values[name].nil? || valid_attr_values[name][:allowed].nil? valid_values = valid_attr_values[name][:allowed] if !valid_values.include?(value) && !valid_values.include?(value.to_sym) raise HyperTrack::InvalidParameters.new("Error: Invalid #{name}: #{value}. Allowed: #{valid_values.join(', ')}") end end true end
Private Class Methods
missing_required_fields(params, required_fields)
click to toggle source
# File lib/hypertrack/params_validator.rb, line 37 def missing_required_fields(params, required_fields) missing_fields = [] required_fields.each do |field| missing_fields << field if Util.blank?(params[field]) end missing_fields end
valid_params_object?(params)
click to toggle source
# File lib/hypertrack/params_validator.rb, line 33 def valid_params_object?(params) params.is_a?(Hash) end