Sha256: 5871803df453e1b8f6b8ed923dc92c838841974bd439736ff8da92a9715f29da

Contents?: true

Size: 913 Bytes

Versions: 2

Compression:

Stored size: 913 Bytes

Contents

module Faraday
  #   HTTP Status X-Error-Code  X-Error
  # 400 138 Missing consumer key.
  # 403 152 Invalid consumer key.
  # 400 181 Invalid redirect uri.
  # 400 182 Missing code.
  # 400 185 Code not found.
  # 403 158 User rejected code.
  # 403 159 Already used code.
  # 50X 199 Pocket server issue.
  #
  # @see http://getpocket.com/developer/docs/authentication
  class Response::RaisePocketError < Response::Middleware
    CLIENT_ERROR_STATUSES = 400...600

    def on_complete(env)
      case env[:status]
      when 404
        raise Faraday::ResourceNotFound, response_values(env)
      when 400..403
        raise Pocket::Error, env[:response_headers]["X-Error"]
      when CLIENT_ERROR_STATUSES
        raise Faraday::ClientError, response_values(env)
      end
    end

    def response_values(env)
      {status: env[:status], headers: env[:response_headers], body: env[:body]}
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pocket-ruby-0.5.0 lib/faraday/raise_pocket_error.rb
pocket-ruby-0.4.0 lib/faraday/raise_pocket_error.rb