Sha256: a48a8d050b71b668bc98842fe094a6309abf7a37b30e87909242e03f65b964a7
Contents?: true
Size: 959 Bytes
Versions: 8
Compression:
Stored size: 959 Bytes
Contents
# frozen_string_literal: true class ReeSwagger::BuildRequestBodySchema include Ree::FnDSL fn :build_request_body_schema do link :get_caster_definition end contract( ReeMapper::Mapper, ArrayOf[Symbol] => Nilor[Hash] ) def call(mapper, path_params = []) if mapper.type return get_caster_definition(mapper.type, method(:call).to_proc) end properties = mapper.fields.each_with_object({}) do |(_name, field), acc| next if path_params.include?(field.name) swagger_field = {} field_mapper = field.type swagger_type = call(field_mapper) swagger_field.merge!(swagger_type) if swagger_type description = field.doc swagger_field[:description] = description if description swagger_field[:nullable] = true if field.null acc[field.name] = swagger_field end return if properties.empty? { type: 'object', properties: properties } end end
Version data entries
8 entries across 8 versions & 1 rubygems