Sha256: 7c2b3a298ad677ed9e6c95fc1695eee5093c2d9e918e4b393df005dcbeafffcb

Contents?: true

Size: 1012 Bytes

Versions: 7

Compression:

Stored size: 1012 Bytes

Contents

module MessengerClient
  class GenericTemplate
    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

    def to_json
      payload = {
        template_type: "generic",
        title: @title,
      }

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

      {
        attachment: {
          type: "template",
          payload: payload
        }
      }
    end

    private

    def parse_default_action(url)
      {
        type: "web_url",
        url:  url,
      }
    end

    def parse_buttons(buttons)
      buttons.map(&:to_json)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
messenger_client-0.1.9 lib/messenger_client/generic_template.rb
messenger_client-0.1.8 lib/messenger_client/generic_template.rb
messenger_client-0.1.7 lib/messenger_client/generic_template.rb
messenger_client-0.1.6 lib/messenger_client/generic_template.rb
messenger_client-0.1.5 lib/messenger_client/generic_template.rb
messenger_client-0.1.4 lib/messenger_client/generic_template.rb
messenger_client-0.1.3 lib/messenger_client/generic_template.rb