Class: Whatsapp::SubscribedApp::Response::Subscription

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/ruby/whatsapp/subscribed_app/response/subscription.rb

Overview

The response to subscribing this app to a WABA's webhook notifications: {success, data}.

data mirrors Collection's shape exactly, since Meta echoes back every app now subscribed — deserialization is delegated to Collection.deserialize rather than duplicating the App mapping. Source: https://developers.facebook.com/documentation/business-messaging/whatsapp/reference/whatsapp-business-account/subscribed-apps-api

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(success: false, data: []) ⇒ Subscription

Returns a new instance of Subscription.

Parameters:

  • success (Boolean) (defaults to: false)
  • data (Array<App>) (defaults to: [])


26
27
28
29
# File 'lib/ruby/whatsapp/subscribed_app/response/subscription.rb', line 26

def initialize(success: false, data: [])
  @success = success
  @data = data
end

Instance Attribute Details

#dataArray<App>

Returns:



22
23
24
# File 'lib/ruby/whatsapp/subscribed_app/response/subscription.rb', line 22

def data
  @data
end

#successBoolean

Returns Whether the subscription succeeded.

Returns:

  • (Boolean)

    Whether the subscription succeeded.



18
19
20
# File 'lib/ruby/whatsapp/subscribed_app/response/subscription.rb', line 18

def success
  @success
end

Class Method Details

.deserialize(response) ⇒ Subscription

Parameters:

  • response (Hash, nil)

    The parsed response body.

Returns:



34
35
36
37
38
# File 'lib/ruby/whatsapp/subscribed_app/response/subscription.rb', line 34

def deserialize(response)
  response ||= {}

  new(success: response["success"] == true, data: Collection.deserialize(response).to_a)
end

Instance Method Details

#each {|app| ... } ⇒ Enumerator

Yield Parameters:

Returns:

  • (Enumerator)


43
44
45
# File 'lib/ruby/whatsapp/subscribed_app/response/subscription.rb', line 43

def each(&)
  data.each(&)
end