class Dox::Printers::ExampleRequestPrinter

Attributes

example[RW]

Public Instance Methods

print(example) click to toggle source

Private Instance Methods

acquire_header_params() click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 53
def acquire_header_params
  example.request_headers.map do |key, value|
    { name: key, in: :header, example: value }
  end
end
add_content(body) click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 20
def add_content(body)
  add_content_name(body['content'] = find_or_add(body, 'content'))
end
add_content_name(body) click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 24
def add_content_name(body)
  req_header = find_headers(example.request_headers)
  add_example(body[req_header] = find_or_add(body, req_header))
  add_schema(body[req_header], Dox.config.schema_request_folder_path)
end
add_desc(body) click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 34
def add_desc(body)
  body[example.desc] = { 'summary' => example.desc,
                         'value' => formatted_body(example.request_body,
                                                   example.request_content_type) }
end
add_example(body) click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 30
def add_example(body)
  add_desc(body['examples'] = find_or_add(body, 'examples'))
end
add_example_request() click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 13
def add_example_request
  spec['parameters'] = add_new_header_params(find_or_add(spec, 'parameters', []))
  return if example.request_body.empty?

  add_content(find_or_add(spec, 'requestBody'))
end
add_new_header_params(header_params) click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 59
def add_new_header_params(header_params)
  example.request_headers.each do |key, value|
    header_params.push(name: key, in: :header, example: value) unless
      header_params.detect { |hash| hash[:name] == key }
  end

  header_params
end
add_schema(body, path) click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 40
def add_schema(body, path)
  return if example.request_schema.nil?
  return unless path

  file_path = File.join(path, "#{example.request_schema}.json")

  body['schema'] = File.file?(file_path) ? { '$ref' => file_path } : JSON.parse(example.request_schema)
end
find_headers(headers) click to toggle source
# File lib/dox/printers/example_request_printer.rb, line 49
def find_headers(headers)
  headers.find { |key, _| key == 'Accept' }&.last || 'any'
end