Class: Whatsapp::Messages::Contacts

Inherits:
Base
  • Object
show all
Defined in:
lib/ruby/whatsapp/messages/contacts.rb,
lib/ruby/whatsapp/messages/contacts/org.rb,
lib/ruby/whatsapp/messages/contacts/url.rb,
lib/ruby/whatsapp/messages/contacts/name.rb,
lib/ruby/whatsapp/messages/contacts/email.rb,
lib/ruby/whatsapp/messages/contacts/phone.rb,
lib/ruby/whatsapp/messages/contacts/address.rb,
lib/ruby/whatsapp/messages/contacts/contact.rb

Overview

Contacts messages allow you to send rich contact information directly to WhatsApp users, such as names, phone numbers, physical addresses, and email addresses. Source: https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/contacts-messages

Defined Under Namespace

Modules: Defaults Classes: Address, Contact, Email, Name, Org, Phone, Url

Instance Attribute Summary collapse

Attributes inherited from Base

#to

Instance Method Summary collapse

Constructor Details

#initialize(contacts:) ⇒ Contacts

Returns a new instance of Contacts.

Parameters:

  • contacts (Array<Hash, Contact>)

    Array with exactly one contact.

  • kwargs (Hash)

    Additional keyword arguments passed to Base (:to). @raise [ActiveModel::ValidationError] if validation fails.



22
23
24
25
26
27
28
# File 'lib/ruby/whatsapp/messages/contacts.rb', line 22

def initialize(contacts:, **)
  super(**)

  @contacts = contacts.map { |c| c.is_a?(Contact) ? c : Contact.new(**c) }

  validate!
end

Instance Attribute Details

#contactsArray<Contact>

Returns:



15
16
17
# File 'lib/ruby/whatsapp/messages/contacts.rb', line 15

def contacts
  @contacts
end

Instance Method Details

#serializeHash

Serializes the contacts message to a hash format suitable for the WhatsApp API.

Returns:

  • (Hash)

    The serialized contacts message.



32
33
34
# File 'lib/ruby/whatsapp/messages/contacts.rb', line 32

def serialize
  envelope(type: Defaults::TYPE, contacts: contacts.map(&:serialize))
end