Class: Whatsapp::Messages::Contacts::Contact
- Inherits:
-
Object
- Object
- Whatsapp::Messages::Contacts::Contact
- Includes:
- ActiveModel::Validations
- Defined in:
- lib/ruby/whatsapp/messages/contacts/contact.rb
Overview
Represents a single contact entry within a contacts message.
Instance Attribute Summary collapse
- #addresses ⇒ Array<Address>
-
#birthday ⇒ String?
Date in YYYY-MM-DD format.
- #emails ⇒ Array<Email>
- #name ⇒ Name
- #org ⇒ Org?
- #phones ⇒ Array<Phone>
- #urls ⇒ Array<Url>
Instance Method Summary collapse
-
#initialize(name:, phones: [], emails: [], addresses: [], org: nil, urls: [], birthday: nil) ⇒ Contact
constructor
A new instance of Contact.
-
#serialize ⇒ Hash
The serialized contact payload.
Constructor Details
#initialize(name:, phones: [], emails: [], addresses: [], org: nil, urls: [], birthday: nil) ⇒ Contact
Returns a new instance of Contact.
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 48 def initialize(name:, phones: [], emails: [], addresses: [], org: nil, urls: [], birthday: nil) @name = name.is_a?(Name) ? name : Name.new(**name) @phones = phones.map { |p| p.is_a?(Phone) ? p : Phone.new(**p) } @emails = emails.map { |e| e.is_a?(Email) ? e : Email.new(**e) } @addresses = addresses.map { |a| a.is_a?(Address) ? a : Address.new(**a) } @org = if org org.is_a?(Org) ? org : Org.new(**org) end @urls = urls.map { |u| u.is_a?(Url) ? u : Url.new(**u) } @birthday = birthday validate! end |
Instance Attribute Details
#addresses ⇒ Array<Address>
24 25 26 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 24 def addresses @addresses end |
#birthday ⇒ String?
Returns Date in YYYY-MM-DD format.
36 37 38 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 36 def birthday @birthday end |
#emails ⇒ Array<Email>
20 21 22 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 20 def emails @emails end |
#name ⇒ Name
12 13 14 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 12 def name @name end |
#org ⇒ Org?
28 29 30 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 28 def org @org end |
#phones ⇒ Array<Phone>
16 17 18 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 16 def phones @phones end |
#urls ⇒ Array<Url>
32 33 34 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 32 def urls @urls end |
Instance Method Details
#serialize ⇒ Hash
Returns The serialized contact payload.
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/ruby/whatsapp/messages/contacts/contact.rb', line 63 def serialize payload = { name: name.serialize } payload[:phones] = phones.map(&:serialize) if phones.any? payload[:emails] = emails.map(&:serialize) if emails.any? payload[:addresses] = addresses.map(&:serialize) if addresses.any? payload[:org] = org.serialize if org payload[:urls] = urls.map(&:serialize) if urls.any? payload[:birthday] = birthday if birthday payload end |