grape-slack-bot 1.5.2 → 1.5.4

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 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