grape-slack-bot 1.5.2 → 1.5.4

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
  SHA256:
3
- metadata.gz: '049b94a107e222f8e3662dc34cacef51262a1d50e4d0945bcad042a507352218'
4
- data.tar.gz: 30e9fe036b313632de57ce8ea17ddf496569115dbeebf993d2c7d24bd34c7c19
3
+ metadata.gz: b7ec90d89547fb9fddd4972b16caad8cb96cc4f2163f82eebc40747d2ca79c1f
4
+ data.tar.gz: bf2fa99739aa63e4e0e63425abde569021d1e0ec061f155c3e07e58b966f2115
5
5
  SHA512:
6
- metadata.gz: 882f712999c11d787a68ff23b8c9c9a675191f4d95c56700fd06fb5020d11e23b39b532d364e511619d9976d63055e5365669994d596d1f370c51bc93c6d806c
7
- data.tar.gz: 13fb5097d19007d8c907ccc59267c8b5f4d1c80878b58f665c8c8f5759677fdeafaa32160cb936a466e3b12b25cac6dce5be5cd3179a29b2414db3a3f24f0cdc
6
+ metadata.gz: 94aed6e295eb7150315c9bcc40fe3be10d5de81b257178e5691918b5ff3832f21622655b779c9ab6fcfd3aa4a9377870da16b91c6f9e69fc74d443f034e83b10
7
+ data.tar.gz: 5857289c58cb8bec70b25067848c623e0c60b5450562efa1ba48859b59271b0a10b08a807e662c1bfdfdabfd48e952be60f290f3395af01dd34b6e7925fced8f
@@ -15,9 +15,9 @@ module SlackBot
15
15
  nil
16
16
  end
17
17
 
18
- def self.create(class_name:, user:, channel_id: nil, config: nil, payload: nil, expires_in: nil, user_scope: nil)
18
+ def self.create(id: nil, class_name:, user:, channel_id: nil, config: nil, payload: nil, expires_in: nil, user_scope: nil)
19
19
  callback =
20
- new(class_name: class_name, user: user, channel_id: channel_id, payload: payload, config: config, expires_in: expires_in, user_scope: user_scope)
20
+ new(id: id, class_name: class_name, user: user, channel_id: channel_id, payload: payload, config: config, expires_in: expires_in, user_scope: user_scope)
21
21
  callback.save
22
22
  callback
23
23
  end
@@ -26,7 +26,7 @@ module SlackBot
26
26
  callback = find(id, user: user, config: config)
27
27
  return callback if callback.present?
28
28
 
29
- create(class_name: class_name, user: user, channel_id: channel_id, payload: payload, config: config, expires_in: expires_in, user_scope: user_scope)
29
+ create(id: id, class_name: class_name, user: user, channel_id: channel_id, payload: payload, config: config, expires_in: expires_in, user_scope: user_scope)
30
30
  end
31
31
 
32
32
  attr_reader :id, :data, :args, :config, :expires_in, :user_scope
@@ -105,6 +105,13 @@ module SlackBot
105
105
  @data[:payload] = payload
106
106
  end
107
107
 
108
+ def handler_class=(handler_class)
109
+ new_class_name = handler_class&.name
110
+ raise "Callback handler class not found" if !config.find_handler_class(class_name)
111
+
112
+ self.class_name = new_class_name
113
+ end
114
+
108
115
  def handler_class
109
116
  return if class_name.blank?
110
117
 
@@ -4,8 +4,7 @@ module SlackBot
4
4
  define_singleton_method(:view_klass) { klass }
5
5
  end
6
6
 
7
- attr_reader :current_user, :params, :config
8
- attr_accessor :callback
7
+ attr_reader :current_user, :params, :config, :callback, :metadata
9
8
  def initialize(current_user: nil, params: nil, callback: nil, config: nil)
10
9
  @current_user = current_user
11
10
  @params = params
@@ -19,6 +18,14 @@ module SlackBot
19
18
 
20
19
  private
21
20
 
21
+ def callback=(callback)
22
+ @callback = callback
23
+ end
24
+
25
+ def metadata=(metadata)
26
+ @metadata = metadata
27
+ end
28
+
22
29
  def event_type
23
30
  params["event"]["type"]
24
31
  end
@@ -30,6 +37,7 @@ module SlackBot
30
37
  .new(current_user: current_user, params: params, context: context)
31
38
  .send(view_method_name)
32
39
  view = view.merge(callback_id: callback.id) if callback.present?
40
+ view = view.merge(private_metadata: metadata) if metadata.present?
33
41
  response =
34
42
  SlackBot::ApiClient.new.views_publish(user_id: user_id, view: view)
35
43
 
@@ -8,12 +8,12 @@ module SlackBot
8
8
  base.use ActionDispatch::RemoteIp
9
9
  base.helpers do
10
10
  def fetch_team_id
11
- params.dig("team_id") || params.dig("team", "id")
11
+ params.dig("team_id") || params.dig("team", "id") || params.dig("payload", "user", "team_id")
12
12
  end
13
13
 
14
14
  def fetch_user_id
15
15
  params.dig("user_id") || params.dig("user", "id") ||
16
- params.dig("event", "user")
16
+ params.dig("event", "user") || params.dig("payload", "user", "id")
17
17
  end
18
18
 
19
19
  def verify_slack_signature!
@@ -20,6 +20,12 @@ module SlackBot
20
20
  @context = context.with_indifferent_access if context.is_a?(Hash)
21
21
  end
22
22
 
23
+ def method_missing(method_name, *args, &block)
24
+ return @context[method_name.to_sym] if @context.key?(method_name.to_sym)
25
+
26
+ super
27
+ end
28
+
23
29
  def text_modal
24
30
  {
25
31
  title: {
@@ -34,20 +40,20 @@ module SlackBot
34
40
 
35
41
  private
36
42
 
37
- def current_date
38
- Date.current
39
- end
40
-
41
43
  def divider_block
42
44
  { type: "divider" }
43
45
  end
44
46
 
47
+ def current_date
48
+ Date.current
49
+ end
50
+
45
51
  def command
46
52
  params[:command]
47
53
  end
48
54
 
49
55
  def paginate(cursor)
50
- SlackBot::Pager.new(cursor, args: args)
56
+ self.class.pager_klass.new(cursor, args: args)
51
57
  end
52
58
  end
53
59
  end
data/lib/slack_bot.rb CHANGED
@@ -22,5 +22,5 @@ require 'slack_bot/pager'
22
22
  require 'slack_bot/grape_extension'
23
23
 
24
24
  module SlackBot
25
- VERSION = '1.5.2'.freeze
25
+ VERSION = '1.5.4'.freeze
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-slack-bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2
4
+ version: 1.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov