Class: PebbleTimeline::Middleware::ErrorDetector

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

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/pebble_timeline/middleware/error_detector.rb', line 5

def call(env)
  @app.call(env).on_complete do |env|
    unless (200..299).include? env[:status]
      error = APIError.new env[:body]

      begin
        response = JSON.load env[:body]
        error = APIError.new response['errorMessage']
        error.code = response['errorCode']
      ensure
        raise error
      end
    end
  end
end