Class: PrettyTimeouts::Middleware

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/pretty_timeouts/middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, service_name) ⇒ Middleware



3
4
5
6
# File 'lib/pretty_timeouts/middleware.rb', line 3

def initialize(app, service_name)
  super(app)
  @service_name = service_name
end

Instance Method Details

#call(env) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/pretty_timeouts/middleware.rb', line 8

def call(env)
  begin
    @app.call(env)
  rescue Faraday::Error::TimeoutError
    raise ::PrettyTimeouts::TimeoutError.new(@service_name, env[:request][:timeout], env[:url])

  rescue Faraday::Error::ConnectionFailed => e
    raise ::PrettyTimeouts::ConnectionFailed.new(@service_name, env[:request][:open_timeout], env[:url], e.message)
  end
end