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.
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.0.0
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: '3.0'
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: '3.0'
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: '2.0'
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: '2.0'
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.12'
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: '3.12'
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.0'
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.0'
141
+ version: '13'
122
142
  - !ruby/object:Gem::Dependency
123
- name: simplecov
143
+ name: standard
124
144
  requirement: !ruby/object:Gem::Requirement
125
145
  requirements:
126
146
  - - "~>"
127
147
  - !ruby/object:Gem::Version
128
- version: '0.21'
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: '0.21'
155
+ version: '1.52'
136
156
  - !ruby/object:Gem::Dependency
137
- name: rspec_junit_formatter
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.6'
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.6'
169
+ version: '1.0'
150
170
  - !ruby/object:Gem::Dependency
151
- name: simplecov-cobertura
171
+ name: standard-performance
152
172
  requirement: !ruby/object:Gem::Requirement
153
173
  requirements:
154
174
  - - "~>"
155
175
  - !ruby/object:Gem::Version
156
- version: '3'
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: '3'
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: '1.0'
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: '1.0'
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.4'
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: '2.4'
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.0'
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.0'
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.0'
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.0'
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.0'
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.0'
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