grape-slack-bot 2.0.0 → 2.1.0
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/CHANGELOG.md +20 -0
- data/README.md +20 -12
- data/grape-slack-bot.gemspec +17 -14
- data/lib/slack_bot/api_client.rb +84 -113
- data/lib/slack_bot/callback.rb +8 -8
- data/lib/slack_bot/config.rb +49 -1
- data/lib/slack_bot/errors.rb +9 -0
- data/lib/slack_bot/grape_extension.rb +109 -133
- data/lib/slack_bot/grape_helpers/dispatch.rb +54 -0
- data/lib/slack_bot/grape_helpers/interactions.rb +65 -0
- data/lib/slack_bot/interaction.rb +40 -42
- data/lib/slack_bot/logger.rb +28 -0
- data/lib/slack_bot/pager.rb +2 -2
- data/lib/slack_bot.rb +1 -1
- data/sig/slack_bot.rbs +29 -1
- metadata +95 -31
data/sig/slack_bot.rbs
CHANGED
|
@@ -23,6 +23,9 @@ module SlackBot
|
|
|
23
23
|
class MenuOptionsNotImplemented < Error
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
class BlockActionNotImplemented < Error
|
|
27
|
+
end
|
|
28
|
+
|
|
26
29
|
class CallbackNotFound < Error
|
|
27
30
|
end
|
|
28
31
|
|
|
@@ -74,6 +77,9 @@ module SlackBot
|
|
|
74
77
|
|
|
75
78
|
class NotImplementedError < Error
|
|
76
79
|
end
|
|
80
|
+
|
|
81
|
+
class ConfigurationError < Error
|
|
82
|
+
end
|
|
77
83
|
end
|
|
78
84
|
|
|
79
85
|
class Config
|
|
@@ -82,9 +88,18 @@ module SlackBot
|
|
|
82
88
|
|
|
83
89
|
attr_reader callback_storage_instance: untyped
|
|
84
90
|
def callback_storage: (untyped klass) -> void
|
|
91
|
+
def callback_storage!: () -> untyped
|
|
85
92
|
|
|
86
93
|
attr_reader callback_user_finder_method: Proc
|
|
87
94
|
def callback_user_finder: (Proc method_lambda) -> void
|
|
95
|
+
def callback_user_finder!: () -> Proc
|
|
96
|
+
|
|
97
|
+
attr_reader user_session_resolver_method: Proc
|
|
98
|
+
def user_session_resolver: (Proc method_lambda) -> void
|
|
99
|
+
def user_session_resolver!: () -> Proc
|
|
100
|
+
|
|
101
|
+
attr_reader event_dispatcher_method: Proc
|
|
102
|
+
def event_dispatcher: (Proc method_lambda) -> void
|
|
88
103
|
|
|
89
104
|
def interaction: (Class interaction_klass, ?handler_name: String?) -> void
|
|
90
105
|
def event_handlers: () -> Hash[Symbol, Class]
|
|
@@ -98,6 +113,9 @@ module SlackBot
|
|
|
98
113
|
def menu_options: (Symbol action_id, Class klass) -> void
|
|
99
114
|
def find_menu_options: (Symbol action_id) -> Class?
|
|
100
115
|
|
|
116
|
+
def block_action: (Symbol action_id, Class interaction_klass, ?handler_name: String?) -> void
|
|
117
|
+
def find_block_action: (Symbol action_id) -> Class?
|
|
118
|
+
|
|
101
119
|
def handler_class: (String class_name, Class klass) -> void
|
|
102
120
|
def find_handler_class: (String class_name) -> Class
|
|
103
121
|
end
|
|
@@ -157,9 +175,12 @@ module SlackBot
|
|
|
157
175
|
class ApiResponse
|
|
158
176
|
attr_reader response: Faraday::Response
|
|
159
177
|
|
|
178
|
+
def self.from_request: () { () -> Faraday::Response } -> ApiResponse
|
|
160
179
|
def initialize: () { () -> Faraday::Response } -> void
|
|
161
180
|
def ok?: () -> bool
|
|
162
181
|
def error: () -> String?
|
|
182
|
+
def rate_limited?: () -> bool
|
|
183
|
+
def retry_after: () -> Integer
|
|
163
184
|
def data: () -> Hash[String, untyped]
|
|
164
185
|
end
|
|
165
186
|
|
|
@@ -301,12 +322,19 @@ module SlackBot
|
|
|
301
322
|
def fetch_team_id: () -> String?
|
|
302
323
|
def fetch_user_id: () -> String?
|
|
303
324
|
def verify_slack_signature!: () -> bool
|
|
304
|
-
def verify_slack_team!: () -> bool
|
|
325
|
+
def verify_slack_team!: (?String? team_id) -> bool
|
|
326
|
+
def interaction_team_id: (Hash[String, untyped] payload) -> String?
|
|
305
327
|
def verify_direct_message_channel!: () -> bool
|
|
306
328
|
def verify_current_user!: () -> bool
|
|
329
|
+
def slack_request_retry?: () -> bool
|
|
330
|
+
def resolve_user_session: (String? team_id, String? user_id) -> untyped?
|
|
331
|
+
def resolve_event_user: (Hash[String, untyped] params) -> untyped?
|
|
307
332
|
def events_callback: (Hash[String, untyped] params) -> untyped
|
|
308
333
|
def url_verification: (Hash[String, untyped] params) -> Hash[String, String]
|
|
309
334
|
def handle_block_actions_view: (view: Hash[String, untyped]?, user: untyped, params: Hash[String, untyped]) -> untyped
|
|
335
|
+
def handle_block_actions_message: (payload: Hash[String, untyped], user: untyped, params: Hash[String, untyped]) -> untyped
|
|
336
|
+
def dispatch_event: (handler: Class, params: Hash[String, untyped], current_user: untyped) -> bool
|
|
337
|
+
def route_interaction: (payload: Hash[String, untyped], user: untyped, params: Hash[String, untyped]) -> untyped
|
|
310
338
|
end
|
|
311
339
|
|
|
312
340
|
module GrapeExtension
|
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: 2.
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrei Makarov
|
|
@@ -32,7 +32,7 @@ dependencies:
|
|
|
32
32
|
version: '1.6'
|
|
33
33
|
- - "<"
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: '
|
|
35
|
+
version: '4.0'
|
|
36
36
|
type: :runtime
|
|
37
37
|
prerelease: false
|
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -42,21 +42,27 @@ dependencies:
|
|
|
42
42
|
version: '1.6'
|
|
43
43
|
- - "<"
|
|
44
44
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: '
|
|
45
|
+
version: '4.0'
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
47
|
name: faraday
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
49
|
requirements:
|
|
50
|
-
- - "
|
|
50
|
+
- - ">="
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
|
-
version:
|
|
52
|
+
version: 2.14.3
|
|
53
|
+
- - "<"
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '3.0'
|
|
53
56
|
type: :runtime
|
|
54
57
|
prerelease: false
|
|
55
58
|
version_requirements: !ruby/object:Gem::Requirement
|
|
56
59
|
requirements:
|
|
57
|
-
- - "
|
|
60
|
+
- - ">="
|
|
58
61
|
- !ruby/object:Gem::Version
|
|
59
|
-
version:
|
|
62
|
+
version: 2.14.3
|
|
63
|
+
- - "<"
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
65
|
+
version: '3.0'
|
|
60
66
|
- !ruby/object:Gem::Dependency
|
|
61
67
|
name: activesupport
|
|
62
68
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -83,14 +89,28 @@ dependencies:
|
|
|
83
89
|
requirements:
|
|
84
90
|
- - "~>"
|
|
85
91
|
- !ruby/object:Gem::Version
|
|
86
|
-
version: '3
|
|
92
|
+
version: '3'
|
|
93
|
+
type: :development
|
|
94
|
+
prerelease: false
|
|
95
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
96
|
+
requirements:
|
|
97
|
+
- - "~>"
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '3'
|
|
100
|
+
- !ruby/object:Gem::Dependency
|
|
101
|
+
name: polyrun
|
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
|
103
|
+
requirements:
|
|
104
|
+
- - "~>"
|
|
105
|
+
- !ruby/object:Gem::Version
|
|
106
|
+
version: 1.5.0
|
|
87
107
|
type: :development
|
|
88
108
|
prerelease: false
|
|
89
109
|
version_requirements: !ruby/object:Gem::Requirement
|
|
90
110
|
requirements:
|
|
91
111
|
- - "~>"
|
|
92
112
|
- !ruby/object:Gem::Version
|
|
93
|
-
version:
|
|
113
|
+
version: 1.5.0
|
|
94
114
|
- !ruby/object:Gem::Dependency
|
|
95
115
|
name: webmock
|
|
96
116
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -111,126 +131,168 @@ dependencies:
|
|
|
111
131
|
requirements:
|
|
112
132
|
- - "~>"
|
|
113
133
|
- !ruby/object:Gem::Version
|
|
114
|
-
version: '13
|
|
134
|
+
version: '13'
|
|
115
135
|
type: :development
|
|
116
136
|
prerelease: false
|
|
117
137
|
version_requirements: !ruby/object:Gem::Requirement
|
|
118
138
|
requirements:
|
|
119
139
|
- - "~>"
|
|
120
140
|
- !ruby/object:Gem::Version
|
|
121
|
-
version: '13
|
|
141
|
+
version: '13'
|
|
122
142
|
- !ruby/object:Gem::Dependency
|
|
123
|
-
name:
|
|
143
|
+
name: standard
|
|
124
144
|
requirement: !ruby/object:Gem::Requirement
|
|
125
145
|
requirements:
|
|
126
146
|
- - "~>"
|
|
127
147
|
- !ruby/object:Gem::Version
|
|
128
|
-
version: '
|
|
148
|
+
version: '1.52'
|
|
129
149
|
type: :development
|
|
130
150
|
prerelease: false
|
|
131
151
|
version_requirements: !ruby/object:Gem::Requirement
|
|
132
152
|
requirements:
|
|
133
153
|
- - "~>"
|
|
134
154
|
- !ruby/object:Gem::Version
|
|
135
|
-
version: '
|
|
155
|
+
version: '1.52'
|
|
136
156
|
- !ruby/object:Gem::Dependency
|
|
137
|
-
name:
|
|
157
|
+
name: standard-custom
|
|
138
158
|
requirement: !ruby/object:Gem::Requirement
|
|
139
159
|
requirements:
|
|
140
160
|
- - "~>"
|
|
141
161
|
- !ruby/object:Gem::Version
|
|
142
|
-
version: '0
|
|
162
|
+
version: '1.0'
|
|
143
163
|
type: :development
|
|
144
164
|
prerelease: false
|
|
145
165
|
version_requirements: !ruby/object:Gem::Requirement
|
|
146
166
|
requirements:
|
|
147
167
|
- - "~>"
|
|
148
168
|
- !ruby/object:Gem::Version
|
|
149
|
-
version: '0
|
|
169
|
+
version: '1.0'
|
|
150
170
|
- !ruby/object:Gem::Dependency
|
|
151
|
-
name:
|
|
171
|
+
name: standard-performance
|
|
152
172
|
requirement: !ruby/object:Gem::Requirement
|
|
153
173
|
requirements:
|
|
154
174
|
- - "~>"
|
|
155
175
|
- !ruby/object:Gem::Version
|
|
156
|
-
version: '
|
|
176
|
+
version: '1.8'
|
|
157
177
|
type: :development
|
|
158
178
|
prerelease: false
|
|
159
179
|
version_requirements: !ruby/object:Gem::Requirement
|
|
160
180
|
requirements:
|
|
161
181
|
- - "~>"
|
|
162
182
|
- !ruby/object:Gem::Version
|
|
163
|
-
version: '
|
|
183
|
+
version: '1.8'
|
|
164
184
|
- !ruby/object:Gem::Dependency
|
|
165
|
-
name: standard
|
|
185
|
+
name: standard-rspec
|
|
166
186
|
requirement: !ruby/object:Gem::Requirement
|
|
167
187
|
requirements:
|
|
168
188
|
- - "~>"
|
|
169
189
|
- !ruby/object:Gem::Version
|
|
170
|
-
version: '
|
|
190
|
+
version: '0.3'
|
|
171
191
|
type: :development
|
|
172
192
|
prerelease: false
|
|
173
193
|
version_requirements: !ruby/object:Gem::Requirement
|
|
174
194
|
requirements:
|
|
175
195
|
- - "~>"
|
|
176
196
|
- !ruby/object:Gem::Version
|
|
177
|
-
version: '
|
|
197
|
+
version: '0.3'
|
|
198
|
+
- !ruby/object:Gem::Dependency
|
|
199
|
+
name: rubocop-rspec
|
|
200
|
+
requirement: !ruby/object:Gem::Requirement
|
|
201
|
+
requirements:
|
|
202
|
+
- - "~>"
|
|
203
|
+
- !ruby/object:Gem::Version
|
|
204
|
+
version: '3.8'
|
|
205
|
+
type: :development
|
|
206
|
+
prerelease: false
|
|
207
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
208
|
+
requirements:
|
|
209
|
+
- - "~>"
|
|
210
|
+
- !ruby/object:Gem::Version
|
|
211
|
+
version: '3.8'
|
|
212
|
+
- !ruby/object:Gem::Dependency
|
|
213
|
+
name: rubocop-thread_safety
|
|
214
|
+
requirement: !ruby/object:Gem::Requirement
|
|
215
|
+
requirements:
|
|
216
|
+
- - "~>"
|
|
217
|
+
- !ruby/object:Gem::Version
|
|
218
|
+
version: '0.7'
|
|
219
|
+
type: :development
|
|
220
|
+
prerelease: false
|
|
221
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
222
|
+
requirements:
|
|
223
|
+
- - "~>"
|
|
224
|
+
- !ruby/object:Gem::Version
|
|
225
|
+
version: '0.7'
|
|
178
226
|
- !ruby/object:Gem::Dependency
|
|
179
227
|
name: appraisal
|
|
180
228
|
requirement: !ruby/object:Gem::Requirement
|
|
181
229
|
requirements:
|
|
182
230
|
- - "~>"
|
|
183
231
|
- !ruby/object:Gem::Version
|
|
184
|
-
version: '2
|
|
232
|
+
version: '2'
|
|
233
|
+
type: :development
|
|
234
|
+
prerelease: false
|
|
235
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
236
|
+
requirements:
|
|
237
|
+
- - "~>"
|
|
238
|
+
- !ruby/object:Gem::Version
|
|
239
|
+
version: '2'
|
|
240
|
+
- !ruby/object:Gem::Dependency
|
|
241
|
+
name: bundler-audit
|
|
242
|
+
requirement: !ruby/object:Gem::Requirement
|
|
243
|
+
requirements:
|
|
244
|
+
- - "~>"
|
|
245
|
+
- !ruby/object:Gem::Version
|
|
246
|
+
version: '0.9'
|
|
185
247
|
type: :development
|
|
186
248
|
prerelease: false
|
|
187
249
|
version_requirements: !ruby/object:Gem::Requirement
|
|
188
250
|
requirements:
|
|
189
251
|
- - "~>"
|
|
190
252
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: '
|
|
253
|
+
version: '0.9'
|
|
192
254
|
- !ruby/object:Gem::Dependency
|
|
193
255
|
name: memory_profiler
|
|
194
256
|
requirement: !ruby/object:Gem::Requirement
|
|
195
257
|
requirements:
|
|
196
258
|
- - "~>"
|
|
197
259
|
- !ruby/object:Gem::Version
|
|
198
|
-
version: '1
|
|
260
|
+
version: '1'
|
|
199
261
|
type: :development
|
|
200
262
|
prerelease: false
|
|
201
263
|
version_requirements: !ruby/object:Gem::Requirement
|
|
202
264
|
requirements:
|
|
203
265
|
- - "~>"
|
|
204
266
|
- !ruby/object:Gem::Version
|
|
205
|
-
version: '1
|
|
267
|
+
version: '1'
|
|
206
268
|
- !ruby/object:Gem::Dependency
|
|
207
269
|
name: rbs
|
|
208
270
|
requirement: !ruby/object:Gem::Requirement
|
|
209
271
|
requirements:
|
|
210
272
|
- - "~>"
|
|
211
273
|
- !ruby/object:Gem::Version
|
|
212
|
-
version: '3
|
|
274
|
+
version: '3'
|
|
213
275
|
type: :development
|
|
214
276
|
prerelease: false
|
|
215
277
|
version_requirements: !ruby/object:Gem::Requirement
|
|
216
278
|
requirements:
|
|
217
279
|
- - "~>"
|
|
218
280
|
- !ruby/object:Gem::Version
|
|
219
|
-
version: '3
|
|
281
|
+
version: '3'
|
|
220
282
|
- !ruby/object:Gem::Dependency
|
|
221
283
|
name: rack-test
|
|
222
284
|
requirement: !ruby/object:Gem::Requirement
|
|
223
285
|
requirements:
|
|
224
286
|
- - "~>"
|
|
225
287
|
- !ruby/object:Gem::Version
|
|
226
|
-
version: '2
|
|
288
|
+
version: '2'
|
|
227
289
|
type: :development
|
|
228
290
|
prerelease: false
|
|
229
291
|
version_requirements: !ruby/object:Gem::Requirement
|
|
230
292
|
requirements:
|
|
231
293
|
- - "~>"
|
|
232
294
|
- !ruby/object:Gem::Version
|
|
233
|
-
version: '2
|
|
295
|
+
version: '2'
|
|
234
296
|
description: Slack bot implementation for ruby-grape
|
|
235
297
|
email:
|
|
236
298
|
- contact@kiskolabs.com
|
|
@@ -257,6 +319,8 @@ files:
|
|
|
257
319
|
- lib/slack_bot/errors.rb
|
|
258
320
|
- lib/slack_bot/event.rb
|
|
259
321
|
- lib/slack_bot/grape_extension.rb
|
|
322
|
+
- lib/slack_bot/grape_helpers/dispatch.rb
|
|
323
|
+
- lib/slack_bot/grape_helpers/interactions.rb
|
|
260
324
|
- lib/slack_bot/interaction.rb
|
|
261
325
|
- lib/slack_bot/logger.rb
|
|
262
326
|
- lib/slack_bot/menu_options.rb
|