Class: SimpleConnect::Responses::MessageResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_connect/responses/message_response.rb

Overview

Wraps a ‘message` block — returned nested inside an `EventResponse` or, when we add future endpoints that return message payloads, as a top- level response. Discriminated on the `event` field:

"message.status"   → status_callback?  (delivered / read / failed)
"message.incoming" → incoming?         (user-initiated inbound msg)

Constant Summary collapse

EVENT_STATUS =
"message.status"
EVENT_INCOMING =
"message.incoming"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(json) ⇒ MessageResponse

Returns a new instance of MessageResponse.



16
17
18
19
20
# File 'lib/simple_connect/responses/message_response.rb', line 16

def initialize(json)
  @json  = json.is_a?(Hash) ? json : {}
  @event = @json["event"]
  @data  = @json["data"].is_a?(Hash) ? @json["data"] : {}
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



14
15
16
# File 'lib/simple_connect/responses/message_response.rb', line 14

def data
  @data
end

#eventObject (readonly)

Returns the value of attribute event.



14
15
16
# File 'lib/simple_connect/responses/message_response.rb', line 14

def event
  @event
end

Instance Method Details

#incoming?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/simple_connect/responses/message_response.rb', line 26

def incoming?
  @event == EVENT_INCOMING
end

#message_idObject

Common fields pulled from ‘data` for convenience. Exact shape mirrors the outbound status callback — see SimpleWaConnect’s status-callback docs for the full field list. Use ‘#data` or `#to_h` for anything not surfaced here.



34
35
36
# File 'lib/simple_connect/responses/message_response.rb', line 34

def message_id
  @data["message_id"]
end

#recipientObject



46
47
48
# File 'lib/simple_connect/responses/message_response.rb', line 46

def recipient
  @data["recipient"]
end

#statusObject



38
39
40
# File 'lib/simple_connect/responses/message_response.rb', line 38

def status
  @data["status"]
end

#status_callback?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/simple_connect/responses/message_response.rb', line 22

def status_callback?
  @event == EVENT_STATUS
end

#timestampObject



42
43
44
# File 'lib/simple_connect/responses/message_response.rb', line 42

def timestamp
  parse_time(@data["timestamp"])
end

#to_hObject



50
51
52
# File 'lib/simple_connect/responses/message_response.rb', line 50

def to_h
  @json.dup
end