Exception: Apiddress::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/apiddress/error.rb

Overview

Raised for any failed APIddress request.

For HTTP errors, status is the response status code and code / message / details come from the API error envelope {“error”: {“code”, “message”, “details”}}.

For client-side failures (request timeout, wait_for_batch timeout), status is 0 and code is “timeout”.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status, code, message, details = nil) ⇒ Error

Returns a new instance of Error.

Parameters:

  • status (Integer)
  • code (String)
  • message (String)
  • details (Hash, nil) (defaults to: nil)


26
27
28
29
30
31
32
# File 'lib/apiddress/error.rb', line 26

def initialize(status, code, message, details = nil)
  super(message)
  @status  = status
  @code    = code
  @message = message
  @details = details
end

Instance Attribute Details

#codeString (readonly)

Returns Machine-readable error code, e.g. “quota_exceeded”.

Returns:

  • (String)

    Machine-readable error code, e.g. “quota_exceeded”.



14
15
16
# File 'lib/apiddress/error.rb', line 14

def code
  @code
end

#detailsHash? (readonly)

Returns Extra context from the API, or nil.

Returns:

  • (Hash, nil)

    Extra context from the API, or nil.



20
21
22
# File 'lib/apiddress/error.rb', line 20

def details
  @details
end

#messageString (readonly)

Returns Human-readable description (also the exception message).

Returns:

  • (String)

    Human-readable description (also the exception message).



17
18
19
# File 'lib/apiddress/error.rb', line 17

def message
  @message
end

#statusInteger (readonly)

Returns HTTP status code, or 0 for client-side failures.

Returns:

  • (Integer)

    HTTP status code, or 0 for client-side failures.



11
12
13
# File 'lib/apiddress/error.rb', line 11

def status
  @status
end

Instance Method Details

#inspectObject



34
35
36
# File 'lib/apiddress/error.rb', line 34

def inspect
  "#<Apiddress::Error status=#{status.inspect} code=#{code.inspect} message=#{message.inspect} details=#{details.inspect}>"
end