class Shift::Api::Core::Middleware::Inspector
Faraday middleware to add the ability to register to receive the request environment and/or the response environment from faraday. Useful for recording or even changing requests / responses
Attributes
after_response_handlers[RW]
app[RW]
before_request_handlers[RW]
Public Class Methods
new(app, before_request_handlers:, after_response_handlers:)
click to toggle source
# File lib/shift/api/core/middleware/inspector.rb, line 11 def initialize(app, before_request_handlers:, after_response_handlers:) self.app = app self.before_request_handlers = before_request_handlers self.after_response_handlers = after_response_handlers end
Public Instance Methods
call(env)
click to toggle source
Calls the provided handlers before each request and after the response @param [Faraday::Env] env The environment from faraday
# File lib/shift/api/core/middleware/inspector.rb, line 19 def call(env) notify_request_handlers(env) request = env.dup app.call(env).on_complete do |env| notify_response_handlers(request, env) end end
Private Instance Methods
notify_request_handlers(env)
click to toggle source
# File lib/shift/api/core/middleware/inspector.rb, line 29 def notify_request_handlers(env) before_request_handlers.each do |handler| handler.call(env) request = env.dup end end
notify_response_handlers(request, env)
click to toggle source
# File lib/shift/api/core/middleware/inspector.rb, line 36 def notify_response_handlers(request, env) after_response_handlers.each do |handler| handler.call(request, env) end end