class Openapi3Parser::NodeFactory::MediaType::EncodingValidator

Attributes

factory[R]

Public Class Methods

new(factory) click to toggle source
# File lib/openapi3_parser/node_factory/media_type.rb, line 44
def initialize(factory)
  @factory = factory
end

Public Instance Methods

call(validatable) click to toggle source
# File lib/openapi3_parser/node_factory/media_type.rb, line 48
def call(validatable)
  missing_keys = validatable.input.keys - properties
  return if missing_keys.empty?

  validatable.add_error(error_message(missing_keys))
end

Private Instance Methods

error_message(missing_keys) click to toggle source
# File lib/openapi3_parser/node_factory/media_type.rb, line 64
def error_message(missing_keys)
  keys = missing_keys.join(", ")
  "Keys are not defined as schema properties: #{keys}"
end
properties() click to toggle source
# File lib/openapi3_parser/node_factory/media_type.rb, line 59
def properties
  properties = factory.resolved_input.dig("schema", "properties")
  properties.respond_to?(:keys) ? properties.keys : []
end