Class: Risenexa::Tracking::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/risenexa/tracking/result.rb

Overview

Value object returned on successful event tracking (HTTP 202).

Examples:

result = client.track_registration(user_id: "usr_123")
result.success?    # => true
result.status_code # => 202
result.event_id    # => "550e8400-e29b-41d4-a716-446655440000"
result.body        # => {"status" => "accepted"}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status_code:, event_id:, body:) ⇒ Result

Returns a new instance of Result.



23
24
25
26
27
# File 'lib/risenexa/tracking/result.rb', line 23

def initialize(status_code:, event_id:, body:)
  @status_code = status_code
  @event_id    = event_id
  @body        = body
end

Instance Attribute Details

#body ⇒ Hash (readonly)

Returns Parsed JSON response body.

Returns:

  • (Hash) —

    Parsed JSON response body



21
22
23
# File 'lib/risenexa/tracking/result.rb', line 21

def body
  @body
end

#event_id ⇒ String (readonly)

Returns UUID v4 sent in the request (idempotency anchor).

Returns:

  • (String) —

    UUID v4 sent in the request (idempotency anchor)



18
19
20
# File 'lib/risenexa/tracking/result.rb', line 18

def event_id
  @event_id
end

#status_code ⇒ Integer (readonly)

Returns HTTP status code (202 on success).

Returns:

  • (Integer) —

    HTTP status code (202 on success)



15
16
17
# File 'lib/risenexa/tracking/result.rb', line 15

def status_code
  @status_code
end

Instance Method Details

#success? ⇒ Boolean

Returns true when status_code is 202.

Returns:

  • (Boolean) —

    true when status_code is 202



30
31
32
# File 'lib/risenexa/tracking/result.rb', line 30

def success?
  @status_code == 202
end