From d66be41d047b9cc97aae026191bafd7ec59d545b Mon Sep 17 00:00:00 2001 From: Greg Myers Date: Sat, 4 Apr 2020 20:43:31 +0100 Subject: [PATCH] Fix oauth2 transform keys except type --- rswag-specs/lib/rswag/specs/swagger_formatter.rb | 5 ++++- .../spec/rswag/specs/swagger_formatter_spec.rb | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/rswag-specs/lib/rswag/specs/swagger_formatter.rb b/rswag-specs/lib/rswag/specs/swagger_formatter.rb index 1e3fb58..d70cbcd 100644 --- a/rswag-specs/lib/rswag/specs/swagger_formatter.rb +++ b/rswag-specs/lib/rswag/specs/swagger_formatter.rb @@ -197,7 +197,10 @@ module Rswag ActiveSupport::Deprecation.warn("Rswag::Specs: WARNING: securityDefinitions flow is replaced in OpenAPI3! Rename to components/securitySchemes/#{name}/flows[] (in swagger_helper.rb)") flow = swagger_doc[:components][:securitySchemes][name].delete(:flow) - swagger_doc[:components][:securitySchemes][name].merge!(flows: [flow]) + flow_elements = swagger_doc[:components][:securitySchemes][name].except(:type).each_with_object({}) do |(k, _v), a| + a[k] = swagger_doc[:components][:securitySchemes][name].delete(k) + end + swagger_doc[:components][:securitySchemes][name].merge!(flows: { flow => flow_elements }) end end end diff --git a/rswag-specs/spec/rswag/specs/swagger_formatter_spec.rb b/rswag-specs/spec/rswag/specs/swagger_formatter_spec.rb index f9b963d..a233471 100644 --- a/rswag-specs/spec/rswag/specs/swagger_formatter_spec.rb +++ b/rswag-specs/spec/rswag/specs/swagger_formatter_spec.rb @@ -79,7 +79,9 @@ module Rswag components: { securitySchemes: { my_oauth: { - flow: :anything + type: :oauth2, + flow: :anything, + token_url: :somewhere } } } @@ -128,7 +130,12 @@ module Rswag components: { securitySchemes: { my_oauth: { - flows: [:anything] + type: :oauth2, + flows: { + anything: { + token_url: :somewhere + } + } } } }