Class: HookSniff::ResponseMetadata
- Inherits:
-
Object
- Object
- HookSniff::ResponseMetadata
- Defined in:
- lib/hooksniff/response_metadata.rb
Overview
Response metadata from the last API request.
Access via client.last_response after any API call.
Instance Attribute Summary collapse
-
#headers ⇒ Hash
readonly
All response headers.
-
#rate_limit_remaining ⇒ Integer?
readonly
X-ratelimit-remaining header.
-
#rate_limit_reset ⇒ Integer?
readonly
X-ratelimit-reset header (Unix timestamp).
-
#request_id ⇒ String?
readonly
X-request-id header.
-
#status_code ⇒ Integer
readonly
HTTP status code.
Class Method Summary collapse
-
.from_http_response(response) ⇒ Object
Create from a Net::HTTP response.
Instance Method Summary collapse
-
#initialize(status_code:, request_id: nil, rate_limit_remaining: nil, rate_limit_reset: nil, headers: {}) ⇒ ResponseMetadata
constructor
A new instance of ResponseMetadata.
Constructor Details
#initialize(status_code:, request_id: nil, rate_limit_remaining: nil, rate_limit_reset: nil, headers: {}) ⇒ ResponseMetadata
Returns a new instance of ResponseMetadata.
28 29 30 31 32 33 34 |
# File 'lib/hooksniff/response_metadata.rb', line 28 def initialize(status_code:, request_id: nil, rate_limit_remaining: nil, rate_limit_reset: nil, headers: {}) @status_code = status_code @request_id = request_id @rate_limit_remaining = rate_limit_remaining @rate_limit_reset = rate_limit_reset @headers = headers end |
Instance Attribute Details
#headers ⇒ Hash (readonly)
Returns All response headers.
26 27 28 |
# File 'lib/hooksniff/response_metadata.rb', line 26 def headers @headers end |
#rate_limit_remaining ⇒ Integer? (readonly)
Returns x-ratelimit-remaining header.
20 21 22 |
# File 'lib/hooksniff/response_metadata.rb', line 20 def rate_limit_remaining @rate_limit_remaining end |
#rate_limit_reset ⇒ Integer? (readonly)
Returns x-ratelimit-reset header (Unix timestamp).
23 24 25 |
# File 'lib/hooksniff/response_metadata.rb', line 23 def rate_limit_reset @rate_limit_reset end |
#request_id ⇒ String? (readonly)
Returns x-request-id header.
17 18 19 |
# File 'lib/hooksniff/response_metadata.rb', line 17 def request_id @request_id end |
#status_code ⇒ Integer (readonly)
Returns HTTP status code.
14 15 16 |
# File 'lib/hooksniff/response_metadata.rb', line 14 def status_code @status_code end |
Class Method Details
.from_http_response(response) ⇒ Object
Create from a Net::HTTP response.
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/hooksniff/response_metadata.rb', line 37 def self.from_http_response(response) headers = response.to_hash.transform_values { |v| v.is_a?(Array) ? v.first : v } new( status_code: response.code.to_i, request_id: headers["x-request-id"], rate_limit_remaining: headers["x-ratelimit-remaining"]&.to_i, rate_limit_reset: headers["x-ratelimit-reset"]&.to_i, headers: headers ) end |