Class: Whatsapp::Messages::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/whatsapp/messages/response.rb,
lib/ruby/whatsapp/messages/response/contacts.rb,
lib/ruby/whatsapp/messages/response/messages.rb

Defined Under Namespace

Classes: Contacts, Messages

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(messaging_product:, contacts:, messages:, success: nil) ⇒ Response

Returns a new instance of Response.

Parameters:

  • messaging_product (String)

    The messaging product used (e.g., "whatsapp").

  • contacts (Array<Contacts>)

    The list of contact responses.

  • messages (Array<Messages>)

    The list of message responses.

  • success (Boolean, nil) (defaults to: nil)

    The status-update success flag, if present.



27
28
29
30
31
32
# File 'lib/ruby/whatsapp/messages/response.rb', line 27

def initialize(messaging_product:, contacts:, messages:, success: nil)
  @messaging_product = messaging_product
  @contacts = contacts
  @messages = messages
  @success = success
end

Instance Attribute Details

#contactsArray<Contacts>

Returns:



12
13
14
# File 'lib/ruby/whatsapp/messages/response.rb', line 12

def contacts
  @contacts
end

#messagesArray<Messages>

Returns:



16
17
18
# File 'lib/ruby/whatsapp/messages/response.rb', line 16

def messages
  @messages
end

#messaging_productString

Returns:

  • (String)


8
9
10
# File 'lib/ruby/whatsapp/messages/response.rb', line 8

def messaging_product
  @messaging_product
end

#successBoolean?

Returns Present on status-update responses (e.g. mark-message-as-read); nil on normal message-send responses.

Returns:

  • (Boolean, nil)

    Present on status-update responses (e.g. mark-message-as-read); nil on normal message-send responses.



21
22
23
# File 'lib/ruby/whatsapp/messages/response.rb', line 21

def success
  @success
end

Class Method Details

.deserialize(data) ⇒ Object

Deserializes a hash into a Messages::Response object.

Parameters:

  • data (Hash)

    The hash representation of the message response. @return [Messages::Response] The deserialized message response object.



38
39
40
41
42
43
44
45
# File 'lib/ruby/whatsapp/messages/response.rb', line 38

def deserialize(data)
  new(
    messaging_product: data["messaging_product"],
    contacts: Array(data["contacts"]).map { |contact_data| Contacts.deserialize(contact_data) },
    messages: Array(data["messages"]).map { |message_data| Messages.deserialize(message_data) },
    success: data["success"]
  )
end