bobot 3.0.7 → 3.5.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 +2 -2
- data/lib/bobot/commander.rb +9 -20
- data/lib/bobot/graph_facebook.rb +3 -12
- data/lib/bobot/page.rb +8 -6
- data/lib/bobot/version.rb +2 -2
- metadata +2 -3
- data/app/jobs/bobot/deliver_job.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5b25b546109e860f892b4500d1361a1e1257607
|
4
|
+
data.tar.gz: 3128aa03dd6a6823f5de3d12ae84a053bfcc3512
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c47070ab60590fe1b2903d361fde6ed675fa5daddee567396bc4b9985d04f6dff446e7204c988664c68b86d1d5a0fc847ffd615d480f1c5233b26d442ae6da7
|
7
|
+
data.tar.gz: 068e5a8226ba52fb45242c671cb268cb08f67f3c498a6323590cd560e21e00208e6a41ea31783dcaed0eda934ced1dcc7ee87f5f69e42af457a5a05170d67523
|
@@ -29,8 +29,8 @@ module Bobot
|
|
29
29
|
|
30
30
|
def receive
|
31
31
|
check_integrity
|
32
|
-
|
33
|
-
|
32
|
+
trigger(parsed_body)
|
33
|
+
head :ok
|
34
34
|
rescue BadRequestError => error
|
35
35
|
render plain: error.message, status: :ok
|
36
36
|
end
|
data/lib/bobot/commander.rb
CHANGED
@@ -24,37 +24,26 @@ module Bobot
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def on(event, &block)
|
27
|
-
|
28
|
-
|
27
|
+
if EVENTS.include? event
|
28
|
+
hooks[event] = block
|
29
|
+
else
|
30
|
+
warn "[bobot trigger] Ignoring #{event.class} (not available in [#{EVENTS.join(', ')}])"
|
29
31
|
end
|
30
|
-
hooks[event] = block
|
31
32
|
end
|
32
33
|
|
33
34
|
def receive(payload)
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
job = Bobot::CommanderJob
|
39
|
-
if Bobot.config.async
|
40
|
-
job.perform_later(payload: payload)
|
41
|
-
else
|
42
|
-
job.perform_now(payload: payload)
|
43
|
-
end
|
44
|
-
rescue KeyError
|
45
|
-
warn "[receive] Ignoring #{event.class} (no hook registered)"
|
35
|
+
Bobot::CommanderJob.send(
|
36
|
+
Bobot.config.async ? :perform_later : :perform_now,
|
37
|
+
{ payload: payload }
|
38
|
+
)
|
46
39
|
end
|
47
40
|
|
48
41
|
def trigger(payload)
|
49
42
|
event = Bobot::Event.parse(payload)
|
50
43
|
hook = hooks.fetch(Bobot::Event::EVENTS.invert[event.class].to_sym)
|
51
|
-
Rails.logger.debug "[ActiveJob] >> Bobot::HookJob related to event #{name.class}"
|
52
|
-
# event.show_typing(state: true)
|
53
44
|
hook.call(event)
|
54
|
-
# event.show_typing(state: false)
|
55
|
-
event
|
56
45
|
rescue KeyError
|
57
|
-
warn "[trigger] Ignoring #{event.class} (no hook registered)"
|
46
|
+
warn "[bobot trigger] Ignoring #{event.class} (no hook registered)"
|
58
47
|
end
|
59
48
|
|
60
49
|
def hooks
|
data/lib/bobot/graph_facebook.rb
CHANGED
@@ -9,15 +9,12 @@ module Bobot
|
|
9
9
|
module ClassMethods
|
10
10
|
def graph_get(path, query: {})
|
11
11
|
url = "#{GRAPH_FB_URL}#{path}".freeze
|
12
|
-
|
12
|
+
response = ::Typhoeus::Request.get(
|
13
13
|
url,
|
14
|
-
method: :get,
|
15
14
|
params: URI.encode_www_form(query.reverse_merge(include_headers: false)),
|
16
15
|
headers: GRAPH_HEADERS,
|
17
16
|
ssl_verifypeer: false,
|
18
|
-
verbose: false,
|
19
17
|
)
|
20
|
-
response = req.run
|
21
18
|
json = ActiveSupport::JSON.decode(response.send(:body) || '{}')
|
22
19
|
Rails.logger.debug "[GET] >> #{url}"
|
23
20
|
Rails.logger.debug "[GET] << #{json}"
|
@@ -28,16 +25,13 @@ module Bobot
|
|
28
25
|
|
29
26
|
def graph_post(path, query: {}, body: {})
|
30
27
|
url = "#{GRAPH_FB_URL}#{path}".freeze
|
31
|
-
|
28
|
+
response = ::Typhoeus::Request.post(
|
32
29
|
url,
|
33
|
-
method: :post,
|
34
30
|
params: URI.encode_www_form(query.reverse_merge(include_headers: false)),
|
35
31
|
body: ActiveSupport::JSON.encode(body),
|
36
32
|
headers: GRAPH_HEADERS,
|
37
33
|
ssl_verifypeer: false,
|
38
|
-
verbose: false,
|
39
34
|
)
|
40
|
-
response = req.run
|
41
35
|
json = ActiveSupport::JSON.decode(response.send(:body) || '{}')
|
42
36
|
Rails.logger.debug "[POST] >> #{url}"
|
43
37
|
Rails.logger.debug "[POST] << #{json}"
|
@@ -48,16 +42,13 @@ module Bobot
|
|
48
42
|
|
49
43
|
def graph_delete(path, query: {}, body: {})
|
50
44
|
url = "#{GRAPH_FB_URL}#{path}".freeze
|
51
|
-
|
45
|
+
response = ::Typhoeus::Request.delete(
|
52
46
|
url,
|
53
|
-
method: :delete,
|
54
47
|
params: URI.encode_www_form(query.reverse_merge(include_headers: false)),
|
55
48
|
body: ActiveSupport::JSON.encode(body),
|
56
49
|
headers: GRAPH_HEADERS,
|
57
50
|
ssl_verifypeer: false,
|
58
|
-
verbose: false,
|
59
51
|
)
|
60
|
-
response = req.run
|
61
52
|
json = ActiveSupport::JSON.decode(response.send(:body) || '{}')
|
62
53
|
Rails.logger.debug "[DELETE] >> #{url}"
|
63
54
|
Rails.logger.debug "[DELETE] << #{json}"
|
data/lib/bobot/page.rb
CHANGED
@@ -36,12 +36,14 @@ module Bobot
|
|
36
36
|
|
37
37
|
def deliver(payload_template:, to:)
|
38
38
|
raise Bobot::FieldFormat.new('payload_template is required.') unless payload_template.present?
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
39
|
+
Bobot::Commander.deliver(
|
40
|
+
body: {
|
41
|
+
recipient: { id: to },
|
42
|
+
}.merge(payload_template),
|
43
|
+
query: {
|
44
|
+
access_token: page_access_token,
|
45
|
+
},
|
46
|
+
)
|
45
47
|
end
|
46
48
|
|
47
49
|
def sender_action(sender_action:, to: nil)
|
data/lib/bobot/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bobot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Navid EMAD
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-12-
|
11
|
+
date: 2017-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -75,7 +75,6 @@ files:
|
|
75
75
|
- app/controllers/bobot/webhook_controller.rb
|
76
76
|
- app/jobs/bobot/application_job.rb
|
77
77
|
- app/jobs/bobot/commander_job.rb
|
78
|
-
- app/jobs/bobot/deliver_job.rb
|
79
78
|
- config/locales/bobot.en.yml
|
80
79
|
- config/routes.rb
|
81
80
|
- lib/bobot.rb
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Bobot
|
2
|
-
class DeliverJob < ApplicationJob
|
3
|
-
queue_as do
|
4
|
-
if Bobot.config.commander_queue_name.present?
|
5
|
-
Bobot.config.commander_queue_name
|
6
|
-
else
|
7
|
-
:default
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def perform(target_facebook_uid:, access_token:, payload_template:)
|
12
|
-
Bobot::Commander.deliver(
|
13
|
-
body: {
|
14
|
-
recipient: { id: target_facebook_uid },
|
15
|
-
}.merge(payload_template),
|
16
|
-
query: {
|
17
|
-
access_token: access_token,
|
18
|
-
},
|
19
|
-
)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|