Class: Whatsapp::Webhook::Messages
- Inherits:
-
Object
- Object
- Whatsapp::Webhook::Messages
- Defined in:
- lib/ruby/whatsapp/webhook/messages.rb
Overview
The messages webhook field's value payload — the only field with a
confirmed, JSON-example-backed schema in Meta's docs. Carries inbound
messages and/or delivery status updates for one of your business phone numbers.
Source: https://developers.facebook.com/documentation/business-messaging/whatsapp/webhooks/overview
Instance Attribute Summary collapse
- #contacts ⇒ Array<Contact>
- #messages ⇒ Array<Message::Base>
- #messaging_product ⇒ String?
- #metadata ⇒ Metadata?
- #statuses ⇒ Array<Status>
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(messaging_product:, metadata:, contacts:, messages:, statuses:) ⇒ Messages
constructor
A new instance of Messages.
Constructor Details
#initialize(messaging_product:, metadata:, contacts:, messages:, statuses:) ⇒ Messages
Returns a new instance of Messages.
30 31 32 33 34 35 36 |
# File 'lib/ruby/whatsapp/webhook/messages.rb', line 30 def initialize(messaging_product:, metadata:, contacts:, messages:, statuses:) @messaging_product = messaging_product @metadata = @contacts = contacts @messages = @statuses = statuses end |
Instance Attribute Details
#contacts ⇒ Array<Contact>
20 21 22 |
# File 'lib/ruby/whatsapp/webhook/messages.rb', line 20 def contacts @contacts end |
#messages ⇒ Array<Message::Base>
24 25 26 |
# File 'lib/ruby/whatsapp/webhook/messages.rb', line 24 def @messages end |
#messaging_product ⇒ String?
12 13 14 |
# File 'lib/ruby/whatsapp/webhook/messages.rb', line 12 def messaging_product @messaging_product end |
#metadata ⇒ Metadata?
16 17 18 |
# File 'lib/ruby/whatsapp/webhook/messages.rb', line 16 def @metadata end |
#statuses ⇒ Array<Status>
28 29 30 |
# File 'lib/ruby/whatsapp/webhook/messages.rb', line 28 def statuses @statuses end |
Class Method Details
.deserialize(data) ⇒ Messages
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ruby/whatsapp/webhook/messages.rb', line 41 def deserialize(data) data ||= {} new( messaging_product: data["messaging_product"], metadata: data["metadata"] ? Metadata.deserialize(data["metadata"]) : nil, contacts: Array(data["contacts"]).map { |contact_data| Contact.deserialize(contact_data) }, messages: Array(data["messages"]).map { || Message.deserialize() }, statuses: Array(data["statuses"]).map { |status_data| Status.deserialize(status_data) } ) end |