Class: OpenAPIParser::SchemaValidator::ObjectValidator
- Defined in:
- lib/openapi_parser/schema_validators/object_validator.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
Constructor Details
This class inherits a constructor from OpenAPIParser::SchemaValidator::Base
Instance Method Details
#coerce_and_validate(value, schema) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/openapi_parser/schema_validators/object_validator.rb', line 5 def coerce_and_validate(value, schema) return OpenAPIParser::ValidateError.build_error_result(value, schema) unless value.kind_of?(Hash) return [value, nil] unless schema.properties required_set = schema.required ? schema.required.to_set : Set.new coerced_values = value.map do |name, v| s = schema.properties[name] coerced, err = validatable.validate_schema(v, s) return [nil, err] if err required_set.delete(name) [name, coerced] end return [nil, OpenAPIParser::NotExistRequiredKey.new(required_set.to_a, schema.object_reference)] unless required_set.empty? value.merge!(coerced_values.to_h) if @coerce_value [value, nil] end |