Sha256: cd2bec8410045d8203721007993114d901eedfa857594ebe6fe154f2583cfc7f

Contents?: true

Size: 963 Bytes

Versions: 9

Compression:

Stored size: 963 Bytes

Contents

require 'faraday'

# @private
module Faraday
  # @private
  class Response::RaiseHttp5xx < Response::Middleware
    def on_complete(env)
      case env[:status].to_i
      when 500
        raise Desk::InternalServerError.new(error_message(env, "Something is technically wrong."), env[:response_headers])
      when 501
        raise Desk::NotImplemented.new(error_message(env, "Not implemented."), env[:response_headers])
      when 502
        raise Desk::BadGateway.new(error_message(env, "Desk.com is down or being upgraded."), env[:response_headers])
      when 503
        raise Desk::ServiceUnavailable.new(error_message(env, "(__-){ Desk.com is over capacity."), env[:response_headers])
      end
    end

    private

    def error_message(env, body=nil)
      "#{env[:method].to_s.upcase} #{env[:url].to_s}: #{[env[:status].to_s + ':', body].compact.join(' ')} Check http://desk.com/ for updates on the status of the Desk.com service."
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
desk-1.2.0 lib/faraday/response/raise_http_5xx.rb
desk-1.1.1 lib/faraday/response/raise_http_5xx.rb
desk-1.1.0 lib/faraday/response/raise_http_5xx.rb
desk-1.0.10 lib/faraday/response/raise_http_5xx.rb
desk-1.0.9 lib/faraday/response/raise_http_5xx.rb
desk-1.0.8 lib/faraday/response/raise_http_5xx.rb
desk-1.0.7 lib/faraday/response/raise_http_5xx.rb
desk-1.0.6 lib/faraday/response/raise_http_5xx.rb
desk-1.0.5 lib/faraday/response/raise_http_5xx.rb