Sha256: b48a10e19b04031a5b86c7d37b94f981d018c5a850620822d6a9403ed7ccd19e
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
# frozen_string_literal: true require "openapi3_parser/context" require "openapi3_parser/node/response" require "openapi3_parser/node_factory/map" require "openapi3_parser/node_factory/object" require "openapi3_parser/node_factory/optional_reference" require "openapi3_parser/node_factory/header" require "openapi3_parser/node_factory/media_type" require "openapi3_parser/node_factory/link" require "openapi3_parser/validation/input_validator" require "openapi3_parser/validators/media_type" require "openapi3_parser/validators/component_keys" module Openapi3Parser module NodeFactory class Response < NodeFactory::Object allow_extensions field "description", input_type: String, required: true field "headers", factory: :headers_factory field "content", factory: :content_factory field "links", factory: :links_factory private def build_object(data, context) Node::Response.new(data, context) end def headers_factory(context) factory = NodeFactory::OptionalReference.new(NodeFactory::Header) NodeFactory::Map.new(context, value_factory: factory) end def content_factory(context) NodeFactory::Map.new( context, validate: method(:validate_content), value_factory: NodeFactory::MediaType ) end def links_factory(context) factory = NodeFactory::OptionalReference.new(NodeFactory::Link) NodeFactory::Map.new( context, validate: Validation::InputValidator.new(Validators::ComponentKeys), value_factory: factory ) end def validate_content(validatable) validatable.input.each_key do |key| message = Validators::MediaType.call(key) next unless message validatable.add_error(message, Context.next_field(validatable.context, key)) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
openapi3_parser-0.5.1 | lib/openapi3_parser/node_factory/response.rb |
openapi3_parser-0.5.0 | lib/openapi3_parser/node_factory/response.rb |