class MessengerClient::TemplateItem

Public Class Methods

new(title, subtitle = nil, image_url = nil, default_url = nil, buttons = []) click to toggle source
# File lib/messenger_client/template_item.rb, line 3
def initialize(title, subtitle = nil, image_url = nil, default_url = nil, buttons = [])
  @title       = title
  @subtitle    = subtitle
  @image_url   = image_url
  @default_url = default_url
  @buttons     = buttons
end

Public Instance Methods

to_json() click to toggle source
# File lib/messenger_client/template_item.rb, line 11
def to_json
  payload
end

Private Instance Methods

parse_buttons(buttons) click to toggle source
# File lib/messenger_client/template_item.rb, line 36
def parse_buttons(buttons)
  buttons.map(&:to_json)
end
parse_default_action(url) click to toggle source
# File lib/messenger_client/template_item.rb, line 29
def parse_default_action(url)
  {
    type: "web_url",
    url:  url,
  }
end
payload() click to toggle source
# File lib/messenger_client/template_item.rb, line 17
def payload
  data = {
    title: @title
  }

  data.merge!(subtitle: @subtitle) unless @subtitle.nil?
  data.merge!(image_url: @image_url) unless @image_url.nil?
  data.merge!(default_action: parse_default_action(@default_url)) unless @default_url.nil?
  data.merge!(buttons: parse_buttons(@buttons)) unless @buttons.empty?
  data
end