Sha256: 6dfc237aaaa78c7db891b110660a13271b0d20c3a64449b14e49b0fc1276390a

Contents?: true

Size: 928 Bytes

Versions: 4

Compression:

Stored size: 928 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::Error::ResourceNotFound, response_values(env)
      when 400...403
        raise Pocket::Error, env[:response_headers]["X-Error"]
      when CLIENT_ERROR_STATUSES
        raise Faraday::Error::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

4 entries across 4 versions & 1 rubygems

Version Path
pocket-ruby-0.3.0 lib/faraday/raise_pocket_error.rb
pocket-ruby-0.2.1 lib/faraday/raise_pocket_error.rb
pocket-ruby-0.2.0 lib/faraday/raise_pocket_error.rb
pocket-ruby-0.1.0 lib/faraday/raise_pocket_error.rb