lib/bobot/configuration.rb in bobot-2.1.0 vs lib/bobot/configuration.rb in bobot-2.3.0
- old
+ new
@@ -20,17 +20,18 @@
def find_page_by_slug(slug)
pages.find { |page| page.slug == slug }
end
class Page
- attr_accessor :slug, :language, :page_id, :page_access_token
+ attr_accessor :slug, :language, :page_id, :page_access_token, :get_started_payload
def initialize(options = {})
self.slug = options[:slug]
self.language = options[:language]
self.page_id = options[:page_id]
self.page_access_token = options[:page_access_token]
+ self.get_started_payload = options[:get_started_payload]
end
def update_facebook_setup!
subscribe_to_facebook_page!
set_greeting_text!
@@ -65,21 +66,26 @@
## == Set bot description (only displayed on first time). ==
def set_greeting_text!
raise Bobot::InvalidParameter.new(:access_token) unless page_access_token.present?
greeting_texts = []
- # Default text
- greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: I18n.default_locale, default: nil)
- greeting_texts << { locale: 'default', text: greeting_text } if greeting_text.present?
- # Each languages
- I18n.available_locales.each do |locale|
- greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: locale, default: nil)
- next unless greeting_text.present?
- facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
- facebook_locales.to_a.each do |locale_long|
- greeting_texts << { locale: locale_long, text: greeting_text }
+ if language.nil?
+ # Default text
+ greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: I18n.default_locale, default: nil)
+ greeting_texts << { locale: 'default', text: greeting_text } if greeting_text.present?
+ # Each languages
+ I18n.available_locales.each do |locale|
+ greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: locale, default: nil)
+ next unless greeting_text.present?
+ facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
+ facebook_locales.to_a.each do |locale_long|
+ greeting_texts << { locale: locale_long, text: greeting_text }
+ end
end
+ else
+ greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: language, default: nil)
+ greeting_texts << { locale: 'default', text: greeting_text } if greeting_text.present?
end
if greeting_texts.present?
Bobot::Profile.set(
body: { greeting: greeting_texts },
query: { access_token: page_access_token },
@@ -125,18 +131,15 @@
## == You can define the action to trigger when new humans click on ==
## == the Get Started button. Before doing it you should check to select the ==
## == messaging_postbacks field when setting up your webhook. ==
def set_get_started_button!
raise Bobot::InvalidParameter.new(:access_token) unless page_access_token.present?
- if I18n.exists?("bobot.#{slug}.config.get_started.payload")
- Bobot::Profile.set(
- body: { get_started: { payload: I18n.t("bobot.#{slug}.config.get_started.payload") } },
- query: { access_token: page_access_token },
- )
- else
- unset_get_started_button!
- end
+ raise Bobot::InvalidParameter.new(:access_token) unless get_started_payload.present?
+ Bobot::Profile.set(
+ body: { get_started: { payload: get_started_payload } },
+ query: { access_token: page_access_token },
+ )
end
def unset_get_started_button!
raise Bobot::InvalidParameter.new(:access_token) unless page_access_token.present?
Bobot::Profile.unset(
@@ -150,25 +153,36 @@
## == button before. ==
def set_persistent_menu!
raise Bobot::InvalidParameter.new(:access_token) unless page_access_token.present?
persistent_menus = []
# Default text
- persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: I18n.default_locale, default: nil)
- if persistent_menu.present?
- persistent_menus << {
- locale: 'default',
- composer_input_disabled: persistent_menu[:composer_input_disabled],
- call_to_actions: persistent_menu[:call_to_actions],
- }
- end
- # Each languages
- I18n.available_locales.each do |locale|
- persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: locale, default: nil)
- facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
- next unless persistent_menu.present?
- facebook_locales.to_a.each do |locale_long|
+ if language.nil?
+ persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: I18n.default_locale, default: nil)
+ if persistent_menu.present?
persistent_menus << {
- locale: locale_long,
+ locale: 'default',
+ composer_input_disabled: persistent_menu[:composer_input_disabled],
+ call_to_actions: persistent_menu[:call_to_actions],
+ }
+ end
+ # Each languages
+ I18n.available_locales.each do |locale|
+ persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: locale, default: nil)
+ facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
+ next unless persistent_menu.present?
+ facebook_locales.to_a.each do |locale_long|
+ persistent_menus << {
+ locale: locale_long,
+ composer_input_disabled: persistent_menu[:composer_input_disabled],
+ call_to_actions: persistent_menu[:call_to_actions],
+ }
+ end
+ end
+ else
+ persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: language, default: nil)
+ if persistent_menu.present?
+ persistent_menus << {
+ locale: 'default',
composer_input_disabled: persistent_menu[:composer_input_disabled],
call_to_actions: persistent_menu[:call_to_actions],
}
end
end