bobot 2.1.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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"] %>
|