Sha256: 7c828899f698a263cc0a64dd19d5133c38595a7bdc3fed2b032f03cb6d684e47

Contents?: true

Size: 929 Bytes

Versions: 2

Compression:

Stored size: 929 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
    ClientErrorStatuses = 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 ClientErrorStatuses
        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

2 entries across 2 versions & 1 rubygems

Version Path
pocket-ruby-0.0.4 lib/faraday/raise_pocket_error.rb
pocket-ruby-0.0.3 lib/faraday/raise_pocket_error.rb