Exception: RubyPi::ApiError

Inherits:
Error
  • Object
show all
Defined in:
lib/ruby_pi/errors.rb

Overview

Raised when an API request fails due to a server-side or client-side HTTP error (e.g., 400, 500). Includes the HTTP status code and the response body for debugging.

Direct Known Subclasses

AuthenticationError, RateLimitError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = nil, status_code: nil, response_body: nil) ⇒ ApiError

Returns a new instance of ApiError.

Parameters:

  • message (String) (defaults to: nil)

    human-readable error description

  • status_code (Integer, nil) (defaults to: nil)

    HTTP status code

  • response_body (String, nil) (defaults to: nil)

    raw response body



35
36
37
38
39
# File 'lib/ruby_pi/errors.rb', line 35

def initialize(message = nil, status_code: nil, response_body: nil)
  @status_code = status_code
  @response_body = response_body
  super(message || "API request failed with status #{status_code}")
end

Instance Attribute Details

#response_bodyString? (readonly)

Returns the raw response body from the API.

Returns:

  • (String, nil)

    the raw response body from the API



30
31
32
# File 'lib/ruby_pi/errors.rb', line 30

def response_body
  @response_body
end

#status_codeInteger? (readonly)

Returns the HTTP status code returned by the API.

Returns:

  • (Integer, nil)

    the HTTP status code returned by the API



27
28
29
# File 'lib/ruby_pi/errors.rb', line 27

def status_code
  @status_code
end