Class: Whatsapp::Messages::Template

Inherits:
Base
  • Object
show all
Defined in:
lib/ruby/whatsapp/messages/template.rb,
lib/ruby/whatsapp/messages/template/language.rb,
lib/ruby/whatsapp/messages/template/component.rb,
lib/ruby/whatsapp/messages/template/parameter.rb

Overview

Template messages allow you to send marketing, utility, and authentication templates to WhatsApp users. Source: https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/template-messages

Defined Under Namespace

Modules: Defaults Classes: Component, Language, Parameter

Instance Attribute Summary collapse

Attributes inherited from Base

#to

Instance Method Summary collapse

Constructor Details

#initialize(name:, language:, components: []) ⇒ Template

Returns a new instance of Template.

Parameters:

  • name (String)

    The template name.

  • language (Hash, Language)

    The language configuration with code.

  • components (Array<Hash, Component>) (defaults to: [])

    Array of component hashes (optional).

  • kwargs (Hash)

    Additional keyword arguments. @raise [ActiveModel::ValidationError] if validation fails.



32
33
34
35
36
37
38
39
40
# File 'lib/ruby/whatsapp/messages/template.rb', line 32

def initialize(name:, language:, components: [], **)
  super(**)

  @name = name
  @language = language.is_a?(Language) ? language : Language.new(**language)
  @components = components.map { |comp| comp.is_a?(Component) ? comp : Component.new(**comp) }

  validate!
end

Instance Attribute Details

#componentsArray<Component>

Returns:



22
23
24
# File 'lib/ruby/whatsapp/messages/template.rb', line 22

def components
  @components
end

#languageLanguage

Returns:



18
19
20
# File 'lib/ruby/whatsapp/messages/template.rb', line 18

def language
  @language
end

#nameString

Returns:

  • (String)


14
15
16
# File 'lib/ruby/whatsapp/messages/template.rb', line 14

def name
  @name
end

Instance Method Details

#serializeHash

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

Returns:

  • (Hash)

    The serialized template message.



44
45
46
# File 'lib/ruby/whatsapp/messages/template.rb', line 44

def serialize
  envelope(type: Defaults::TYPE, template: template_payload)
end