Class: Whatsapp::Webhook::Status

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/whatsapp/webhook/status.rb,
lib/ruby/whatsapp/webhook/status/pricing.rb,
lib/ruby/whatsapp/webhook/status/conversation.rb

Overview

A single statuses[] entry from the messages webhook field — a delivery status update (sent/delivered/read/failed) for a message you sent.

Defined Under Namespace

Classes: Conversation, Pricing

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id:, status:, timestamp:, recipient_id:, conversation: nil, pricing: nil, errors: []) ⇒ Status

Returns a new instance of Status.



36
37
38
39
40
41
42
43
44
# File 'lib/ruby/whatsapp/webhook/status.rb', line 36

def initialize(id:, status:, timestamp:, recipient_id:, conversation: nil, pricing: nil, errors: [])
  @id = id
  @status = status
  @timestamp = timestamp
  @recipient_id = recipient_id
  @conversation = conversation
  @pricing = pricing
  @errors = errors
end

Instance Attribute Details

#conversationConversation?

Returns:



26
27
28
# File 'lib/ruby/whatsapp/webhook/status.rb', line 26

def conversation
  @conversation
end

#errorsArray<Error>

Returns:



34
35
36
# File 'lib/ruby/whatsapp/webhook/status.rb', line 34

def errors
  @errors
end

#idString?

Returns The wamid of the message this status is about.

Returns:

  • (String, nil)

    The wamid of the message this status is about.



10
11
12
# File 'lib/ruby/whatsapp/webhook/status.rb', line 10

def id
  @id
end

#pricingPricing?

Returns:



30
31
32
# File 'lib/ruby/whatsapp/webhook/status.rb', line 30

def pricing
  @pricing
end

#recipient_idString?

Returns:

  • (String, nil)


22
23
24
# File 'lib/ruby/whatsapp/webhook/status.rb', line 22

def recipient_id
  @recipient_id
end

#statusString?

Returns "sent", "delivered", "read", or "failed".

Returns:

  • (String, nil)

    "sent", "delivered", "read", or "failed".



14
15
16
# File 'lib/ruby/whatsapp/webhook/status.rb', line 14

def status
  @status
end

#timestampString?

Returns:

  • (String, nil)


18
19
20
# File 'lib/ruby/whatsapp/webhook/status.rb', line 18

def timestamp
  @timestamp
end

Class Method Details

.deserialize(data) ⇒ Status

Parameters:

  • data (Hash)

    A raw statuses[] entry.

Returns:



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/ruby/whatsapp/webhook/status.rb', line 49

def deserialize(data)
  data ||= {}

  new(
    id: data["id"],
    status: data["status"],
    timestamp: data["timestamp"],
    recipient_id: data["recipient_id"],
    conversation: data["conversation"] ? Conversation.deserialize(data["conversation"]) : nil,
    pricing: data["pricing"] ? Pricing.deserialize(data["pricing"]) : nil,
    errors: Array(data["errors"]).map { |error_data| Error.deserialize(error_data) }
  )
end