class Pandadoc::Api::ParamsValidator
Public Class Methods
validate(params, validations)
click to toggle source
# 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