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 +4 -4
- data/app/controllers/bobot/webhook_controller.rb +1 -1
- data/lib/bobot/configuration.rb +48 -34
- data/lib/bobot/version.rb +1 -1
- data/lib/generators/bobot/templates/config/bobot.yml +4 -0
- data/lib/generators/bobot/templates/config/locales/bobot.en.yml +0 -2
- data/lib/generators/bobot/templates/config/locales/bobot.fr.yml +0 -2
- data/spec/bobot/bobot_spec.rb +2 -0
- data/spec/dummy/log/test.log +2 -0
- data/spec/dummy/tmp/generator/config/bobot.yml +4 -0
- data/spec/dummy/tmp/generator/config/locales/bobot.en.yml +0 -2
- data/spec/dummy/tmp/generator/config/locales/bobot.fr.yml +0 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89f023af6566ca4d81900335b0565ad7ebe84ed1
|
4
|
+
data.tar.gz: 3c5d53f778e48f40eb9dcadf8bc6608558d9455a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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: :
|
41
|
+
render plain: error.message, status: :ok
|
42
42
|
end
|
43
43
|
|
44
44
|
private
|
data/lib/bobot/configuration.rb
CHANGED
@@ -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
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
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
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
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
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
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:
|
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
@@ -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"] %>
|
data/spec/bobot/bobot_spec.rb
CHANGED
@@ -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
|
data/spec/dummy/log/test.log
CHANGED
@@ -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"] %>
|