From 682e6d74091a24a1776862b61811df13fa042b1d Mon Sep 17 00:00:00 2001 From: "Felix Letkemann (IoT Venture)" Date: Sat, 21 Mar 2020 14:03:01 +0100 Subject: [PATCH] added method for extraction of header parameters --- .../writers/open_api_writer.rb | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/rspec_api_documentation/writers/open_api_writer.rb b/lib/rspec_api_documentation/writers/open_api_writer.rb index ed5d0420..3ccf4c9c 100644 --- a/lib/rspec_api_documentation/writers/open_api_writer.rb +++ b/lib/rspec_api_documentation/writers/open_api_writer.rb @@ -34,7 +34,7 @@ def initialize(index, configuration, init_config) def as_json @specs = OpenApi::Root.new(init_config) add_tags! - add_paths! + add_paths! add_security_definitions! specs.as_json end @@ -160,9 +160,23 @@ def extract_schema(fields) def extract_parameters(example) parameters = example.extended_parameters.uniq { |parameter| parameter[:name] } - extract_known_parameters(parameters.select { |p| !p[:in].nil? }) + - extract_unknown_parameters(example, parameters.select { |p| p[:in].nil? }) + extract_unknown_parameters(example, parameters.select { |p| p[:in].nil? }) + + extract_header_parameters(example.requests) + end + + def extract_header_parameters(request) + request.first[:request_headers].map do |req_headers| + OpenApi::Parameter.new( + name: req_headers[0], + in: :header, + description: req_headers[1], + value: req_headers[1], + type: "string", + with_example: req_headers[1], + required: true + ) + end end def extract_parameter(opts) @@ -239,6 +253,7 @@ def http_method end def requests + super.select { |request| request[:request_method].to_s.downcase == http_method.to_s.downcase } end