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 +4 -4
- data/lib/slack_bot/callback.rb +10 -3
- data/lib/slack_bot/event.rb +10 -2
- data/lib/slack_bot/grape_extension.rb +2 -2
- data/lib/slack_bot/view.rb +11 -5
- data/lib/slack_bot.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7ec90d89547fb9fddd4972b16caad8cb96cc4f2163f82eebc40747d2ca79c1f
|
4
|
+
data.tar.gz: bf2fa99739aa63e4e0e63425abde569021d1e0ec061f155c3e07e58b966f2115
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94aed6e295eb7150315c9bcc40fe3be10d5de81b257178e5691918b5ff3832f21622655b779c9ab6fcfd3aa4a9377870da16b91c6f9e69fc74d443f034e83b10
|
7
|
+
data.tar.gz: 5857289c58cb8bec70b25067848c623e0c60b5450562efa1ba48859b59271b0a10b08a807e662c1bfdfdabfd48e952be60f290f3395af01dd34b6e7925fced8f
|
data/lib/slack_bot/callback.rb
CHANGED
@@ -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
|
|
data/lib/slack_bot/event.rb
CHANGED
@@ -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!
|
data/lib/slack_bot/view.rb
CHANGED
@@ -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
|
-
|
56
|
+
self.class.pager_klass.new(cursor, args: args)
|
51
57
|
end
|
52
58
|
end
|
53
59
|
end
|
data/lib/slack_bot.rb
CHANGED