Skip to content

Commit

Permalink
[REQ] [RUBY] [FARADAY] Allow middleware to be configured (#10495)
Browse files Browse the repository at this point in the history
* feat: allow configuring middleware in setup

* fix: stop requiring Faraday middleware unnecessarily

* chore: regenerate petstore samples

* chore: regenerate openapi3 client

* chore: ci fails so rebuild
  • Loading branch information
johngallagher authored Oct 4, 2021
1 parent 45e0b46 commit 2ceccfb
Show file tree
Hide file tree
Showing 8 changed files with 74 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

connection = Faraday.new(:url => config.base_url, :ssl => ssl_options) do |conn|
conn.basic_auth(config.username, config.password)
@config.configure_middleware(conn)
if opts[:header_params]["Content-Type"] == "multipart/form-data"
conn.request :multipart
conn.request :url_encoded
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@ module {{moduleName}}
@ssl_ca_file = nil
@ssl_client_cert = nil
@ssl_client_key = nil
@middlewares = []
@request_middlewares = []
@response_middlewares = []
@timeout = 60
{{/isFaraday}}
{{^isFaraday}}
Expand Down Expand Up @@ -346,5 +349,37 @@ module {{moduleName}}

url
end

{{#isFaraday}}
# Adds middleware to the stack
def use(*middleware)
@middlewares << middleware
end

# Adds request middleware to the stack
def request(*middleware)
@request_middlewares << middleware
end

# Adds response middleware to the stack
def response(*middleware)
@response_middlewares << middleware
end

# Set up middleware on the connection
def configure_middleware(connection)
@middlewares.each do |middleware|
connection.use(*middleware)
end

@request_middlewares.each do |middleware|
connection.request(*middleware)
end

@response_middlewares.each do |middleware|
connection.response(*middleware)
end
end
{{/isFaraday}}
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ def call_api(http_method, path, opts = {})

connection = Faraday.new(:url => config.base_url, :ssl => ssl_options) do |conn|
conn.basic_auth(config.username, config.password)
@config.configure_middleware(conn)
if opts[:header_params]["Content-Type"] == "multipart/form-data"
conn.request :multipart
conn.request :url_encoded
Expand Down
33 changes: 33 additions & 0 deletions samples/client/petstore/ruby-faraday/lib/petstore/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,9 @@ def initialize
@ssl_ca_file = nil
@ssl_client_cert = nil
@ssl_client_key = nil
@middlewares = []
@request_middlewares = []
@response_middlewares = []
@timeout = 60
@debugging = false
@inject_format = false
Expand Down Expand Up @@ -354,5 +357,35 @@ def server_url(index, variables = {}, servers = nil)

url
end

# Adds middleware to the stack
def use(*middleware)
@middlewares << middleware
end

# Adds request middleware to the stack
def request(*middleware)
@request_middlewares << middleware
end

# Adds response middleware to the stack
def response(*middleware)
@response_middlewares << middleware
end

# Set up middleware on the connection
def configure_middleware(connection)
@middlewares.each do |middleware|
connection.use(*middleware)
end

@request_middlewares.each do |middleware|
connection.request(*middleware)
end

@response_middlewares.each do |middleware|
connection.response(*middleware)
end
end
end
end
1 change: 1 addition & 0 deletions samples/client/petstore/ruby/lib/petstore/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -359,5 +359,6 @@ def server_url(index, variables = {}, servers = nil)

url
end

end
end
Original file line number Diff line number Diff line change
Expand Up @@ -313,5 +313,6 @@ def server_url(index, variables = {}, servers = nil)

url
end

end
end
Original file line number Diff line number Diff line change
Expand Up @@ -350,5 +350,6 @@ def server_url(index, variables = {}, servers = nil)

url
end

end
end
Original file line number Diff line number Diff line change
Expand Up @@ -266,5 +266,6 @@ def server_url(index, variables = {}, servers = nil)

url
end

end
end

0 comments on commit 2ceccfb

Please sign in to comment.