Class: Brainstem::ApiDocs::Formatters::OpenApiSpecification::Version2::FieldDefinitions::EndpointParamFormatter

Inherits:
ResponseFieldFormatter show all
Defined in:
lib/brainstem/api_docs/formatters/open_api_specification/version_2/field_definitions/endpoint_param_formatter.rb

Instance Method Summary collapse

Methods inherited from ResponseFieldFormatter

#format

Methods included from Helper

#format_http_method, #format_sentence, #format_tag_name, #presenter_title, #type_and_format, #uncapitalize

Methods inherited from AbstractFormatter

call, #call

Methods included from Concerns::Optional

#valid_options

Constructor Details

#initialize(endpoint, param_name, param_tree) ⇒ EndpointParamFormatter

Returns a new instance of EndpointParamFormatter.



10
11
12
13
14
# File 'lib/brainstem/api_docs/formatters/open_api_specification/version_2/field_definitions/endpoint_param_formatter.rb', line 10

def initialize(endpoint, param_name, param_tree)
  @endpoint = endpoint
  @param_name = param_name
  @param_tree = param_tree
end

Instance Method Details

#format_object_field(field_config, field_properties, include_description = true) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/brainstem/api_docs/formatters/open_api_specification/version_2/field_definitions/endpoint_param_formatter.rb', line 16

def format_object_field(field_config, field_properties, include_description = true)
  super(field_config, field_properties, include_description).tap do |field_schema|
    if (required_props = required_properties(field_properties)).present?
      field_schema[:required] = required_props
    end
  end
end

#required_properties(field_properties) ⇒ Object



24
25
26
27
28
# File 'lib/brainstem/api_docs/formatters/open_api_specification/version_2/field_definitions/endpoint_param_formatter.rb', line 24

def required_properties(field_properties)
  field_properties.select do |_, property_data|
    !property_data[:_config][:dynamic_key] && property_data[:_config][:required]
  end.keys
end