bobot 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 238ce4063aa11a3df2f3150c8a7a65e23cc0063f
4
- data.tar.gz: ce018a45a1d777752c746c4b7f46e2049fdfa071
3
+ metadata.gz: 89f023af6566ca4d81900335b0565ad7ebe84ed1
4
+ data.tar.gz: 3c5d53f778e48f40eb9dcadf8bc6608558d9455a
5
5
  SHA512:
6
- metadata.gz: 76f2106985520b82654e76d11340e24bcf3c4a25074c87a345f3d543f54384419538fbcc05ed82b33015ee539c4f5dc75736e5eb9f518ae38ef179e9978e0802
7
- data.tar.gz: f793e2ae3e8b5bdb50bcbda3e639c16018e4db52f420bf823dd81b489ce4f208623fe78050f09337a67f53c29d3a465756f676fe3c8a62cfb53192fb26b7b54d
6
+ metadata.gz: 40737224f810069c928286346b4ed71144a5b769195634e1236395bae92d7bed35d5017349ebdbd14a9cc91ad351ad112d3c5975426867f13aa5ba256fd96f1a
7
+ data.tar.gz: 4c144cd6e9a1a82e8d50a2f1af4bdcdb39f7cb7a6f7a9a7170e0d96b9bea2a52e8f7e5bb5f6b638d689cd39783e6ea5bec58e975d78e48716f75bb70ea2b6ae3
@@ -38,7 +38,7 @@ module Bobot
38
38
  return_json = trigger(parsed_body)
39
39
  render plain: ActiveSupport::JSON.encode(return_json), status: :ok
40
40
  rescue BadRequestError => error
41
- render plain: error.message, status: :bad_request
41
+ render plain: error.message, status: :ok
42
42
  end
43
43
 
44
44
  private
@@ -22,13 +22,14 @@ module Bobot
22
22
  end
23
23
 
24
24
  class Page
25
- attr_accessor :slug, :language, :page_id, :page_access_token
25
+ attr_accessor :slug, :language, :page_id, :page_access_token, :get_started_payload
26
26
 
27
27
  def initialize(options = {})
28
28
  self.slug = options[:slug]
29
29
  self.language = options[:language]
30
30
  self.page_id = options[:page_id]
31
31
  self.page_access_token = options[:page_access_token]
32
+ self.get_started_payload = options[:get_started_payload]
32
33
  end
33
34
 
34
35
  def update_facebook_setup!
@@ -67,17 +68,22 @@ module Bobot
67
68
  def set_greeting_text!
68
69
  raise Bobot::InvalidParameter.new(:access_token) unless page_access_token.present?
69
70
  greeting_texts = []
70
- # Default text
71
- greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: I18n.default_locale, default: nil)
72
- greeting_texts << { locale: 'default', text: greeting_text } if greeting_text.present?
73
- # Each languages
74
- I18n.available_locales.each do |locale|
75
- greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: locale, default: nil)
76
- next unless greeting_text.present?
77
- facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
78
- facebook_locales.to_a.each do |locale_long|
79
- greeting_texts << { locale: locale_long, text: greeting_text }
71
+ if language.nil?
72
+ # Default text
73
+ greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: I18n.default_locale, default: nil)
74
+ greeting_texts << { locale: 'default', text: greeting_text } if greeting_text.present?
75
+ # Each languages
76
+ I18n.available_locales.each do |locale|
77
+ greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: locale, default: nil)
78
+ next unless greeting_text.present?
79
+ facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
80
+ facebook_locales.to_a.each do |locale_long|
81
+ greeting_texts << { locale: locale_long, text: greeting_text }
82
+ end
80
83
  end
84
+ else
85
+ greeting_text = I18n.t("bobot.#{slug}.config.greeting_text", locale: language, default: nil)
86
+ greeting_texts << { locale: 'default', text: greeting_text } if greeting_text.present?
81
87
  end
82
88
  if greeting_texts.present?
83
89
  Bobot::Profile.set(
@@ -127,14 +133,11 @@ module Bobot
127
133
  ## == messaging_postbacks field when setting up your webhook. ==
128
134
  def set_get_started_button!
129
135
  raise Bobot::InvalidParameter.new(:access_token) unless page_access_token.present?
130
- if I18n.exists?("bobot.#{slug}.config.get_started.payload")
131
- Bobot::Profile.set(
132
- body: { get_started: { payload: I18n.t("bobot.#{slug}.config.get_started.payload") } },
133
- query: { access_token: page_access_token },
134
- )
135
- else
136
- unset_get_started_button!
137
- end
136
+ raise Bobot::InvalidParameter.new(:access_token) unless get_started_payload.present?
137
+ Bobot::Profile.set(
138
+ body: { get_started: { payload: get_started_payload } },
139
+ query: { access_token: page_access_token },
140
+ )
138
141
  end
139
142
 
140
143
  def unset_get_started_button!
@@ -152,22 +155,33 @@ module Bobot
152
155
  raise Bobot::InvalidParameter.new(:access_token) unless page_access_token.present?
153
156
  persistent_menus = []
154
157
  # Default text
155
- persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: I18n.default_locale, default: nil)
156
- if persistent_menu.present?
157
- persistent_menus << {
158
- locale: 'default',
159
- composer_input_disabled: persistent_menu[:composer_input_disabled],
160
- call_to_actions: persistent_menu[:call_to_actions],
161
- }
162
- end
163
- # Each languages
164
- I18n.available_locales.each do |locale|
165
- persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: locale, default: nil)
166
- facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
167
- next unless persistent_menu.present?
168
- facebook_locales.to_a.each do |locale_long|
158
+ if language.nil?
159
+ persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: I18n.default_locale, default: nil)
160
+ if persistent_menu.present?
161
+ persistent_menus << {
162
+ locale: 'default',
163
+ composer_input_disabled: persistent_menu[:composer_input_disabled],
164
+ call_to_actions: persistent_menu[:call_to_actions],
165
+ }
166
+ end
167
+ # Each languages
168
+ I18n.available_locales.each do |locale|
169
+ persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: locale, default: nil)
170
+ facebook_locales = I18n.t("bobot.#{slug}.config.facebook_locales", locale: locale, default: nil)
171
+ next unless persistent_menu.present?
172
+ facebook_locales.to_a.each do |locale_long|
173
+ persistent_menus << {
174
+ locale: locale_long,
175
+ composer_input_disabled: persistent_menu[:composer_input_disabled],
176
+ call_to_actions: persistent_menu[:call_to_actions],
177
+ }
178
+ end
179
+ end
180
+ else
181
+ persistent_menu = I18n.t("bobot.#{slug}.config.persistent_menu", locale: language, default: nil)
182
+ if persistent_menu.present?
169
183
  persistent_menus << {
170
- locale: locale_long,
184
+ locale: 'default',
171
185
  composer_input_disabled: persistent_menu[:composer_input_disabled],
172
186
  call_to_actions: persistent_menu[:call_to_actions],
173
187
  }
data/lib/bobot/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Bobot
2
2
  class Version
3
3
  MAJOR = 2
4
- MINOR = 1
4
+ MINOR = 3
5
5
  PATCH = 0
6
6
  PRE = nil
7
7
 
@@ -10,6 +10,7 @@ development:
10
10
  language: "fr"
11
11
  page_id: "789"
12
12
  page_access_token: "abc"
13
+ get_started_payload: "get_started"
13
14
 
14
15
  test:
15
16
  app_id: "123"
@@ -22,6 +23,7 @@ test:
22
23
  - slug: "facebook_1"
23
24
  page_id: "789"
24
25
  page_access_token: "abc"
26
+ get_started_payload: "get_started"
25
27
 
26
28
  staging:
27
29
  app_id: <%= ENV["STAGING_BOBOT_APP_ID"] %>
@@ -34,6 +36,7 @@ staging:
34
36
  - slug: <%= ENV["STAGING_BOBOT_PAGE_SLUG"] %>
35
37
  page_id: <%= ENV["STAGING_BOBOT_PAGE_ID"] %>
36
38
  page_access_token: <%= ENV["STAGING_BOBOT_PAGE_ACCESS_TOKEN"] %>
39
+ get_started_payload: <%= ENV["STAGING_BOBOT_GET_STARTED_PAYLOAD"] %>
37
40
 
38
41
  production:
39
42
  app_id: <%= ENV["PRODUCTION_BOBOT_APP_ID"] %>
@@ -46,3 +49,4 @@ production:
46
49
  - slug: <%= ENV["PRODUCTION_BOBOT_PAGE_SLUG"] %>
47
50
  page_id: <%= ENV["PRODUCTION_BOBOT_PAGE_ID"] %>
48
51
  page_access_token: <%= ENV["PRODUCTION_BOBOT_PAGE_ACCESS_TOKEN"] %>
52
+ get_started_payload: <%= ENV["PRODUCTION_BOBOT_GET_STARTED_PAYLOAD"] %>
@@ -7,8 +7,6 @@ en:
7
7
  - "en_UD"
8
8
  - "en_GB"
9
9
  greeting_text: "Bobot is an intelligent robot."
10
- get_started:
11
- payload: 'get_started'
12
10
  persistent_menu:
13
11
  composer_input_disabled: false
14
12
  call_to_actions:
@@ -6,8 +6,6 @@ fr:
6
6
  - "fr_FR"
7
7
  - "fr_CA"
8
8
  greeting_text: 'Bobot est un robot intelligent.'
9
- get_started:
10
- payload: 'get_started'
11
9
  persistent_menu:
12
10
  composer_input_disabled: false
13
11
  call_to_actions:
@@ -14,6 +14,7 @@ RSpec.describe Bobot do
14
14
  language: 'language',
15
15
  page_access_token: 'page_access_token',
16
16
  page_id: 'page_id',
17
+ get_started_payload: 'get_started_payload',
17
18
  )
18
19
  end
19
20
  expect(Bobot.config.app_id).to eql('app_id')
@@ -25,6 +26,7 @@ RSpec.describe Bobot do
25
26
  expect(Bobot.config.pages[0].language).to eql('language')
26
27
  expect(Bobot.config.pages[0].page_access_token).to eql('page_access_token')
27
28
  expect(Bobot.config.pages[0].page_id).to eql('page_id')
29
+ expect(Bobot.config.pages[0].get_started_payload).to eql('get_started_payload')
28
30
  end
29
31
  end
30
32
  end
@@ -1,2 +1,4 @@
1
1
  [ActiveJob] Enqueued Bobot::CommanderJob (Job ID: 8a80c687-421f-4bd4-8bba-a022b265e12f) to Test(default) with arguments: {"sender"=>{"id"=>"2"}, "recipient"=>{"id"=>"3"}, "timestamp"=>1457764197627, "message"=>{"mid"=>"mid.1457764197618:41d102a3e1ae206a38", "seq"=>73, "text"=>"Hello, bot!"}}
2
2
  [ActiveJob] Enqueued Bobot::CommanderJob (Job ID: e295aa69-c9c8-4900-8409-e43a19b6a500) to Test(default) with arguments: {"sender"=>{"id"=>"2"}, "recipient"=>{"id"=>"3"}, "timestamp"=>1457764197627, "message"=>{"mid"=>"mid.1457764197618:41d102a3e1ae206a38", "seq"=>73, "text"=>"Hello, bot!"}}
3
+ [ActiveJob] Enqueued Bobot::CommanderJob (Job ID: 733fbfda-cfcb-4da4-8a4d-5dcd99bf7ad0) to Test(default) with arguments: {"sender"=>{"id"=>"2"}, "recipient"=>{"id"=>"3"}, "timestamp"=>1457764197627, "message"=>{"mid"=>"mid.1457764197618:41d102a3e1ae206a38", "seq"=>73, "text"=>"Hello, bot!"}}
4
+ [ActiveJob] Enqueued Bobot::CommanderJob (Job ID: abbfb628-82bd-4d48-a102-8720e8fbed91) to Test(default) with arguments: {"sender"=>{"id"=>"2"}, "recipient"=>{"id"=>"3"}, "timestamp"=>1457764197627, "message"=>{"mid"=>"mid.1457764197618:41d102a3e1ae206a38", "seq"=>73, "text"=>"Hello, bot!"}}
@@ -10,6 +10,7 @@ development:
10
10
  language: "fr"
11
11
  page_id: "789"
12
12
  page_access_token: "abc"
13
+ get_started_payload: "get_started"
13
14
 
14
15
  test:
15
16
  app_id: "123"
@@ -22,6 +23,7 @@ test:
22
23
  - slug: "facebook_1"
23
24
  page_id: "789"
24
25
  page_access_token: "abc"
26
+ get_started_payload: "get_started"
25
27
 
26
28
  staging:
27
29
  app_id: <%= ENV["STAGING_BOBOT_APP_ID"] %>
@@ -34,6 +36,7 @@ staging:
34
36
  - slug: <%= ENV["STAGING_BOBOT_PAGE_SLUG"] %>
35
37
  page_id: <%= ENV["STAGING_BOBOT_PAGE_ID"] %>
36
38
  page_access_token: <%= ENV["STAGING_BOBOT_PAGE_ACCESS_TOKEN"] %>
39
+ get_started_payload: <%= ENV["STAGING_BOBOT_GET_STARTED_PAYLOAD"] %>
37
40
 
38
41
  production:
39
42
  app_id: <%= ENV["PRODUCTION_BOBOT_APP_ID"] %>
@@ -46,3 +49,4 @@ production:
46
49
  - slug: <%= ENV["PRODUCTION_BOBOT_PAGE_SLUG"] %>
47
50
  page_id: <%= ENV["PRODUCTION_BOBOT_PAGE_ID"] %>
48
51
  page_access_token: <%= ENV["PRODUCTION_BOBOT_PAGE_ACCESS_TOKEN"] %>
52
+ get_started_payload: <%= ENV["PRODUCTION_BOBOT_GET_STARTED_PAYLOAD"] %>
@@ -7,8 +7,6 @@ en:
7
7
  - "en_UD"
8
8
  - "en_GB"
9
9
  greeting_text: "Bobot is an intelligent robot."
10
- get_started:
11
- payload: 'get_started'
12
10
  persistent_menu:
13
11
  composer_input_disabled: false
14
12
  call_to_actions:
@@ -6,8 +6,6 @@ fr:
6
6
  - "fr_FR"
7
7
  - "fr_CA"
8
8
  greeting_text: 'Bobot est un robot intelligent.'
9
- get_started:
10
- payload: 'get_started'
11
9
  persistent_menu:
12
10
  composer_input_disabled: false
13
11
  call_to_actions:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bobot
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Navid EMAD