Sha256: e9cd9792338ef6b68081edfb59c09cab052f3e1fc6e019909c767c1b33b8de59

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

module Faraday
  class Response::RainmakerErrors < Response::Middleware
      def on_complete(env)
     case env[:status]
      when 400
      raise Rainmaker::BadRequest.new(error_message(env), env[:response_headers])
      when 401
      raise Rainmaker::Unauthorized.new(error_message(env), env[:response_headers])
      when 403
      raise Rainmaker::Forbidden.new(error_message(env), env[:response_headers])
      when 404
      raise Rainmaker::NotFound.new(error_message(env), env[:response_headers])
      when 422
      raise Rainmaker::Invalid.new(error_message(env), env[:response_headers])
     when 500
        raise Rainmaker::InternalServerError.new(error_message(env), env[:response_headers])
      when 502
        raise Rainmaker::BadGateway.new(error_message(env), env[:response_headers])
      when 503
        raise Rainmaker::ServiceUnavailable.new(error_message(env), env[:response_headers])
      end
       end

   def error_message(env)
      "#{env[:method].to_s.upcase} #{env[:url].to_s}: #{env[:status]}"
    end

    def initialize(app)
      super
      @parser = nil
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rainmaker-0.1.5 lib/faraday/response/rainmaker_errors.rb