Class: Pandadoc::Api::ParamsValidator
- Inherits:
-
Object
- Object
- Pandadoc::Api::ParamsValidator
- Defined in:
- lib/pandadoc/api/params_validator.rb
Defined Under Namespace
Classes: ParameterTypeError, RequiredParameterError
Class Method Summary collapse
Class Method Details
.validate(params, validations) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/pandadoc/api/params_validator.rb', line 32 def self.validate(params, validations) valid_keys = validations.keys valid_params = params.keep_if { |key| valid_keys.include? key } validations.each_pair do |key, validators| if validators[:required] == true && valid_params[key].nil? raise RequiredParameterError.new('Missing required parameter', key) end validators_type_array = validators[:type].is_a?(Array) ? validators[:type] : [validators[:type]] if valid_params[key] && !validators_type_array.include?(valid_params[key].class) raise ParameterTypeError.new("Invalid parameter type, received #{valid_params[key].class} requested #{validators[:type]}", key, valid_params[:key].class, validators[:type]) end end valid_params end |