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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b049008070aae88b76717e5d73e2d26a761cc41
4
- data.tar.gz: 7934bbe21c9a742d30c03ea6dff7e115854a9a04
3
+ metadata.gz: a5b25b546109e860f892b4500d1361a1e1257607
4
+ data.tar.gz: 3128aa03dd6a6823f5de3d12ae84a053bfcc3512
5
5
  SHA512:
6
- metadata.gz: 8210786c2b553d7b9aa4c59903d649c42b42a89c0916831fb3076c6d432f4f53d92fbf0e6b1b6a520987ac596b0236b32bf2788a1b1c1a9a8e270762260b4608
7
- data.tar.gz: 9c51a7fa9f562f23e18536566ed16a23f2dc4d9f55ad45dfb6d1346fd4e4a7ba37b729c8bd43633dce4ab3dddd1e875d0cc9204ac242e0033b19bd2439e87336
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
- return_json = trigger(parsed_body)
33
- render plain: ActiveSupport::JSON.encode(return_json), status: :ok
32
+ trigger(parsed_body)
33
+ head :ok
34
34
  rescue BadRequestError => error
35
35
  render plain: error.message, status: :ok
36
36
  end
@@ -24,37 +24,26 @@ module Bobot
24
24
  end
25
25
 
26
26
  def on(event, &block)
27
- unless EVENTS.include? event
28
- raise Error.new("#{event} is not a valid event; available events are #{EVENTS.join(',')}")
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
- event = Bobot::Event.parse(payload)
35
- hooks.fetch(Bobot::Event::EVENTS.invert[event.class].to_sym)
36
- Rails.logger.debug "[ActiveJob] << Bobot::HookJob with event #{event.class}"
37
- # event.mark_as_seen
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
@@ -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
- req = ::Typhoeus::Request.new(
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
- req = ::Typhoeus::Request.new(
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
- req = ::Typhoeus::Request.new(
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}"
@@ -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
- job = Bobot::DeliverJob
40
- if Bobot.config.async
41
- job.perform_later(target_facebook_uid: to, access_token: page_access_token, payload_template: payload_template)
42
- else
43
- job.perform_now(target_facebook_uid: to, access_token: page_access_token, payload_template: payload_template)
44
- end
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)
@@ -1,8 +1,8 @@
1
1
  module Bobot
2
2
  class Version
3
3
  MAJOR = 3
4
- MINOR = 0
5
- PATCH = 7
4
+ MINOR = 5
5
+ PATCH = 0
6
6
  PRE = nil
7
7
 
8
8
  class << self
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.7
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-04 00:00:00.000000000 Z
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