slack-ruby-client 0.11.0 → 0.11.1
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 +5 -5
- data/CHANGELOG.md +7 -0
- data/README.md +13 -1
- data/bin/commands/conversations.rb +4 -0
- data/bin/commands/users.rb +10 -1
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints/channels.rb +1 -0
- data/lib/slack/web/api/endpoints/chat.rb +1 -0
- data/lib/slack/web/api/endpoints/conversations.rb +8 -0
- data/lib/slack/web/api/endpoints/files.rb +2 -0
- data/lib/slack/web/api/endpoints/users.rb +13 -1
- data/lib/slack/web/api/endpoints/users_admin.rb +2 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
- data/lib/slack/web/api/templates/method.erb +3 -0
- data/lib/slack/web/faraday/response/raise_error.rb +3 -4
- data/spec/fixtures/slack/web/503_error.yml +14 -0
- data/spec/slack/web/api/errors/service_unavailable_spec.rb +14 -0
- data/spec/slack/web/client_spec.rb +8 -0
- data/spec/slack/web/faraday/response/raise_error_spec.rb +50 -0
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 488002a6ea8cb58f2aeb4e21d5008c47fae73f4d6c6d8d9930a324f1b24492dd
|
4
|
+
data.tar.gz: b05b1307ff8f64000eccecf83b7cf818bcebcace33c1e3232691680c109a562d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4beafc46990017ebe15b2860f7f601968fc0df6cf195e3b5a79fa173e59b4d8f34dbc4fe29c969b3be545d7b1c15046589d4446560ce6d032aaaa6ecd6b0e3bc
|
7
|
+
data.tar.gz: e2acea4de6fe0d5517cc8294c6712f4bea8aa35aec9630b1a8c6f7c3144d78a36063a8ec59f91c0fbc73c0c7dd96be582a7ba656872298dc81ed1a03c1dc87fd
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
### 0.11.1 (1/23/2017)
|
2
|
+
|
3
|
+
* [#187](https://github.com/slack-ruby/slack-ruby-client/pull/187): Concatenate error message when multiple errors present - [@chrislopresto](https://github.com/chrislopresto).
|
4
|
+
* [#188](https://github.com/slack-ruby/slack-ruby-client/pull/188): Fixed `NoMethodError` when Slack is unavailable - [@sonicdoe](https://github.com/sonicdoe).
|
5
|
+
* [#196](https://github.com/slack-ruby/slack-ruby-client/pull/196): Added `users_lookupByEmail` - [@manuelmeurer](https://github.com/manuelmeurer).
|
6
|
+
* [#185](https://github.com/slack-ruby/slack-ruby-client/pull/185): Calling undocumented endpoints will now produce a warning - [@aviflombaum](https://github.com/aviflombaum).
|
7
|
+
|
1
8
|
### 0.11.0 (11/25/2017)
|
2
9
|
|
3
10
|
* [#173](https://github.com/slack-ruby/slack-ruby-client/issues/173): Added dialog support - [@alexagranov](https://github.com/alexagranov).
|
data/README.md
CHANGED
@@ -18,7 +18,7 @@ A Ruby client for the Slack [Web](https://api.slack.com/web) and [RealTime Messa
|
|
18
18
|
|
19
19
|
## Stable Release
|
20
20
|
|
21
|
-
You're reading the documentation for the **
|
21
|
+
You're reading the documentation for the **next** release of slack-ruby-client. Please see the documentation for the [last stable release, v0.11.1](https://github.com/slack-ruby/slack-ruby-client/blob/v0.11.1/README.md) unless you're integrating with HEAD. See [UPGRADING](UPGRADING.md) when upgrading from an older version.
|
22
22
|
|
23
23
|
## Installation
|
24
24
|
|
@@ -184,6 +184,10 @@ You can also pass request options, including `timeout` and `open_timeout` into i
|
|
184
184
|
client.channels_list(request: { timeout: 180 })
|
185
185
|
```
|
186
186
|
|
187
|
+
You can also control what proxy options are used by modifying the `http_proxy` environment variable per [Net::HTTP's documentation](https://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html#class-Net::HTTP-label-Proxies).
|
188
|
+
|
189
|
+
Note that Docker on OSX seems to incorrectly set the proxy, causing `Faraday::ConnectionFailed, ERROR -- : Failed to open TCP connection to : (getaddrinfo: Name or service not known)`. You might need to manually unset `http_proxy` in that case, eg. `http_proxy="" bundle exec ruby ./my_bot.rb`.
|
190
|
+
|
187
191
|
#### Pagination Support
|
188
192
|
|
189
193
|
The Web client natively supports [cursor pagination](https://api.slack.com/docs/pagination#cursors) for methods that allow it, such as `users_list`. Supply a block and the client will make repeated requests adjusting the value of `cursor` with every response. The default limit is set to 100 and can be adjusted via `Slack::Web::Client.config.default_page_size` or by passing it directly into the API call.
|
@@ -210,6 +214,14 @@ end
|
|
210
214
|
all_members # many thousands of team members retrieved 10 at a time
|
211
215
|
```
|
212
216
|
|
217
|
+
#### Error Handling
|
218
|
+
|
219
|
+
If a request fails, a `Slack::Web::Api::Errors::SlackError` will be raised. The error message contains the error code. In case of multiple errors, the error codes are separated by commas. The original response is also accessible using the `response` attribute.
|
220
|
+
|
221
|
+
If you exceed [Slack’s rate limits](https://api.slack.com/docs/rate-limits), a `Slack::Web::Api::Errors::TooManyRequestsError` will be raised instead.
|
222
|
+
|
223
|
+
In any other case, a `Faraday::ClientError` will be raised. This may be the case if Slack is temporarily unavailable, for example.
|
224
|
+
|
213
225
|
### RealTime Client
|
214
226
|
|
215
227
|
The Real Time Messaging API is a WebSocket-based API that allows you to receive events from Slack in real time and send messages as user.
|
@@ -35,6 +35,7 @@ command 'conversations' do |g|
|
|
35
35
|
g.command 'history' do |c|
|
36
36
|
c.flag 'channel', desc: 'Conversation ID to fetch history for.'
|
37
37
|
c.flag 'cursor', desc: "Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first 'page' of the collection. See pagination for more detail."
|
38
|
+
c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results only when either timestamp is specified.'
|
38
39
|
c.flag 'latest', desc: 'End of time range of messages to include in results.'
|
39
40
|
c.flag 'limit', desc: "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached."
|
40
41
|
c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
|
@@ -141,7 +142,10 @@ command 'conversations' do |g|
|
|
141
142
|
c.flag 'channel', desc: 'Conversation ID to fetch thread from.'
|
142
143
|
c.flag 'ts', desc: "Unique identifier of a thread's parent message."
|
143
144
|
c.flag 'cursor', desc: "Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first 'page' of the collection. See pagination for more detail."
|
145
|
+
c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results only when either timestamp is specified.'
|
146
|
+
c.flag 'latest', desc: 'End of time range of messages to include in results.'
|
144
147
|
c.flag 'limit', desc: "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached."
|
148
|
+
c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
|
145
149
|
c.action do |_global_options, options, _args|
|
146
150
|
puts JSON.dump($client.conversations_replies(options))
|
147
151
|
end
|
data/bin/commands/users.rb
CHANGED
@@ -52,12 +52,21 @@ command 'users' do |g|
|
|
52
52
|
c.flag 'cursor', desc: "Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first 'page' of the collection. See pagination for more detail."
|
53
53
|
c.flag 'include_locale', desc: 'Set this to true to receive the locale for users. Defaults to false.'
|
54
54
|
c.flag 'limit', desc: "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached."
|
55
|
-
c.flag 'presence', desc: 'Whether to include presence data in the output. Setting this to
|
55
|
+
c.flag 'presence', desc: 'Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.'
|
56
56
|
c.action do |_global_options, options, _args|
|
57
57
|
puts JSON.dump($client.users_list(options))
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
+
g.desc 'Find a user with an email address.'
|
62
|
+
g.long_desc %( Find a user with an email address. )
|
63
|
+
g.command 'lookupByEmail' do |c|
|
64
|
+
c.flag 'email', desc: 'An email address belonging to a user in the workspace.'
|
65
|
+
c.action do |_global_options, options, _args|
|
66
|
+
puts JSON.dump($client.users_lookupByEmail(options))
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
61
70
|
g.desc 'This method searches for users.'
|
62
71
|
g.long_desc %( This method searches for users. )
|
63
72
|
g.command 'search' do |c|
|
data/lib/slack/version.rb
CHANGED
@@ -41,6 +41,7 @@ module Slack
|
|
41
41
|
def channels_delete(options = {})
|
42
42
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
43
43
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
44
|
+
logger.warn('The channels.delete method is undocumented.')
|
44
45
|
post('channels.delete', options)
|
45
46
|
end
|
46
47
|
|
@@ -19,6 +19,7 @@ module Slack
|
|
19
19
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
20
20
|
throw ArgumentError.new('Required arguments :command missing') if options[:command].nil?
|
21
21
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
22
|
+
logger.warn('The chat.command method is undocumented.')
|
22
23
|
post('chat.command', options)
|
23
24
|
end
|
24
25
|
|
@@ -52,6 +52,8 @@ module Slack
|
|
52
52
|
# Conversation ID to fetch history for.
|
53
53
|
# @option options [Object] :cursor
|
54
54
|
# Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
|
55
|
+
# @option options [Object] :inclusive
|
56
|
+
# Include messages with latest or oldest timestamp in results only when either timestamp is specified.
|
55
57
|
# @option options [timestamp] :latest
|
56
58
|
# End of time range of messages to include in results.
|
57
59
|
# @option options [Object] :limit
|
@@ -233,8 +235,14 @@ module Slack
|
|
233
235
|
# Unique identifier of a thread's parent message.
|
234
236
|
# @option options [Object] :cursor
|
235
237
|
# Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
|
238
|
+
# @option options [Object] :inclusive
|
239
|
+
# Include messages with latest or oldest timestamp in results only when either timestamp is specified.
|
240
|
+
# @option options [timestamp] :latest
|
241
|
+
# End of time range of messages to include in results.
|
236
242
|
# @option options [Object] :limit
|
237
243
|
# The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
|
244
|
+
# @option options [timestamp] :oldest
|
245
|
+
# Start of time range of messages to include in results.
|
238
246
|
# @see https://api.slack.com/methods/conversations.replies
|
239
247
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.replies.json
|
240
248
|
def conversations_replies(options = {})
|
@@ -30,6 +30,7 @@ module Slack
|
|
30
30
|
def files_edit(options = {})
|
31
31
|
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
|
32
32
|
throw ArgumentError.new('Required arguments :title missing') if options[:title].nil?
|
33
|
+
logger.warn('The files.edit method is undocumented.')
|
33
34
|
post('files.edit', options)
|
34
35
|
end
|
35
36
|
|
@@ -102,6 +103,7 @@ module Slack
|
|
102
103
|
throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
|
103
104
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
104
105
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
106
|
+
logger.warn('The files.share method is undocumented.')
|
105
107
|
post('files.share', options)
|
106
108
|
end
|
107
109
|
|
@@ -61,7 +61,7 @@ module Slack
|
|
61
61
|
# @option options [Object] :limit
|
62
62
|
# The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
|
63
63
|
# @option options [Object] :presence
|
64
|
-
# Whether to include presence data in the output. Setting this to
|
64
|
+
# Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.
|
65
65
|
# @see https://api.slack.com/methods/users.list
|
66
66
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.list.json
|
67
67
|
def users_list(options = {})
|
@@ -74,6 +74,18 @@ module Slack
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
+
#
|
78
|
+
# Find a user with an email address.
|
79
|
+
#
|
80
|
+
# @option options [Object] :email
|
81
|
+
# An email address belonging to a user in the workspace.
|
82
|
+
# @see https://api.slack.com/methods/users.lookupByEmail
|
83
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.lookupByEmail.json
|
84
|
+
def users_lookupByEmail(options = {})
|
85
|
+
throw ArgumentError.new('Required arguments :email missing') if options[:email].nil?
|
86
|
+
post('users.lookupByEmail', options)
|
87
|
+
end
|
88
|
+
|
77
89
|
#
|
78
90
|
# Marks a user as active.
|
79
91
|
#
|
@@ -25,6 +25,7 @@ module Slack
|
|
25
25
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/users.admin/users.admin.invite.json
|
26
26
|
def users_admin_invite(options = {})
|
27
27
|
throw ArgumentError.new('Required arguments :email missing') if options[:email].nil?
|
28
|
+
logger.warn('The users.admin.invite method is undocumented.')
|
28
29
|
post('users.admin.invite', options)
|
29
30
|
end
|
30
31
|
|
@@ -37,6 +38,7 @@ module Slack
|
|
37
38
|
def users_admin_setInactive(options = {})
|
38
39
|
throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
|
39
40
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
41
|
+
logger.warn('The users.admin.setInactive method is undocumented.')
|
40
42
|
post('users.admin.setInactive', options)
|
41
43
|
end
|
42
44
|
end
|
@@ -10,6 +10,7 @@ module Slack
|
|
10
10
|
#
|
11
11
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/users.prefs/users.prefs.get.json
|
12
12
|
def users_prefs_get(options = {})
|
13
|
+
logger.warn('The users.prefs.get method is undocumented.')
|
13
14
|
post('users.prefs.get', options)
|
14
15
|
end
|
15
16
|
end
|
@@ -44,6 +44,9 @@ module Slack
|
|
44
44
|
<% if data['args']['user'] %>
|
45
45
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
46
46
|
<% end %>
|
47
|
+
<% if data['undocumented'] %>
|
48
|
+
logger.warn('The <%= group %>.<%= name %> method is undocumented.')
|
49
|
+
<% end %>
|
47
50
|
<% if data['args'].keys.include?('cursor') %>
|
48
51
|
if block_given?
|
49
52
|
Pagination::Cursor.new(self, :<%= group.gsub(".", "_") %>_<%= name %>, options).each do |page|
|
@@ -6,10 +6,9 @@ module Slack
|
|
6
6
|
def on_complete(env)
|
7
7
|
if env.status == 429
|
8
8
|
raise Slack::Web::Api::Errors::TooManyRequestsError, env.response
|
9
|
-
elsif (body = env.body) && body['ok']
|
10
|
-
|
11
|
-
|
12
|
-
raise Slack::Web::Api::Errors::SlackError.new(body['error'], env.response)
|
9
|
+
elsif (body = env.body) && !body['ok']
|
10
|
+
error_message = body['error'] || body['errors'].map { |message| message['error'] }.join(',')
|
11
|
+
raise Slack::Web::Api::Errors::SlackError.new(error_message, env.response)
|
13
12
|
end
|
14
13
|
end
|
15
14
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://slack.com/api/auth.test
|
6
|
+
response:
|
7
|
+
status:
|
8
|
+
code: 503
|
9
|
+
message: Service Unavailable
|
10
|
+
body:
|
11
|
+
encoding: US-ASCII
|
12
|
+
string: ''
|
13
|
+
http_version:
|
14
|
+
recorded_at: Thu, 30 Nov 2017 14:36:26 GMT
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Slack::Web::Client do
|
4
|
+
let(:client) { Slack::Web::Client.new }
|
5
|
+
it 'raises a Faraday::ClientError when Slack is unavailable', vcr: { cassette_name: 'web/503_error' } do
|
6
|
+
begin
|
7
|
+
client.auth_test
|
8
|
+
raise 'Expected to receive Faraday::ClientError.'
|
9
|
+
rescue Faraday::ClientError => e
|
10
|
+
expect(e.response).to_not be_nil
|
11
|
+
expect(e.response[:status]).to eq 503
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -170,5 +170,13 @@ RSpec.describe Slack::Web::Client do
|
|
170
170
|
expect(request.options.timeout).to eq 3
|
171
171
|
end
|
172
172
|
end
|
173
|
+
context 'calling undocumented methods' do
|
174
|
+
let(:client) { Slack::Web::Client.new }
|
175
|
+
it 'produces a warning' do
|
176
|
+
expect(client.logger).to receive(:warn).with('The users.admin.setInactive method is undocumented.')
|
177
|
+
expect(client).to receive(:post)
|
178
|
+
client.users_admin_setInactive(user: 'U092BDCLV')
|
179
|
+
end
|
180
|
+
end
|
173
181
|
end
|
174
182
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Slack::Web::Faraday::Response::RaiseError do
|
4
|
+
describe '#on_complete' do
|
5
|
+
let(:subject) { described_class.new }
|
6
|
+
let(:status) { 200 }
|
7
|
+
let(:response) { nil }
|
8
|
+
let(:body) { {} }
|
9
|
+
let(:env) { double status: status, response: response, body: body }
|
10
|
+
|
11
|
+
context 'with status of 429' do
|
12
|
+
let(:status) { 429 }
|
13
|
+
|
14
|
+
it 'raises a TooManyRequestsError' do
|
15
|
+
expect { subject.on_complete(env) }.to raise_error(Slack::Web::Api::Errors::TooManyRequestsError)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'with an ok payload in the body' do
|
20
|
+
let(:body) { { 'ok' => 'true' } }
|
21
|
+
|
22
|
+
it 'is nil' do
|
23
|
+
expect(subject.on_complete(env)).to eq nil
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'with a single error in the body' do
|
28
|
+
let(:body) { { 'error' => 'already_in_channel' } }
|
29
|
+
|
30
|
+
it 'raises a SlackError with the error message' do
|
31
|
+
expect { subject.on_complete(env) }.to raise_error(Slack::Web::Api::Errors::SlackError, 'already_in_channel')
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'with multiple errors in the body' do
|
36
|
+
let(:body) do
|
37
|
+
{
|
38
|
+
'errors' => [
|
39
|
+
{ 'error' => 'already_in_channel' },
|
40
|
+
{ 'error' => 'something_else_terrible' }
|
41
|
+
]
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'raises a SlackError with the concatenated error messages' do
|
46
|
+
expect { subject.on_complete(env) }.to raise_error(Slack::Web::Api::Errors::SlackError, 'already_in_channel,something_else_terrible')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Doubrovkine
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -368,6 +368,7 @@ files:
|
|
368
368
|
- slack-ruby-client.gemspec
|
369
369
|
- slack.png
|
370
370
|
- spec/fixtures/slack/web/429_error.yml
|
371
|
+
- spec/fixtures/slack/web/503_error.yml
|
371
372
|
- spec/fixtures/slack/web/auth_test_error.yml
|
372
373
|
- spec/fixtures/slack/web/auth_test_success.yml
|
373
374
|
- spec/fixtures/slack/web/channels_info.yml
|
@@ -431,12 +432,14 @@ files:
|
|
431
432
|
- spec/slack/web/api/endpoints/users_prefs_spec.rb
|
432
433
|
- spec/slack/web/api/endpoints/users_profile_spec.rb
|
433
434
|
- spec/slack/web/api/error_spec.rb
|
435
|
+
- spec/slack/web/api/errors/service_unavailable_spec.rb
|
434
436
|
- spec/slack/web/api/errors/slack_error_spec.rb
|
435
437
|
- spec/slack/web/api/mixins/channels_spec.rb
|
436
438
|
- spec/slack/web/api/mixins/groups_spec.rb
|
437
439
|
- spec/slack/web/api/mixins/users_spec.rb
|
438
440
|
- spec/slack/web/api/pagination/cursor_spec.rb
|
439
441
|
- spec/slack/web/client_spec.rb
|
442
|
+
- spec/slack/web/faraday/response/raise_error_spec.rb
|
440
443
|
- spec/spec_helper.rb
|
441
444
|
- spec/support/queue_with_timeout.rb
|
442
445
|
- spec/support/real_time/concurrency/mock.rb
|
@@ -464,12 +467,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
464
467
|
version: 1.3.6
|
465
468
|
requirements: []
|
466
469
|
rubyforge_project:
|
467
|
-
rubygems_version: 2.
|
470
|
+
rubygems_version: 2.7.4
|
468
471
|
signing_key:
|
469
472
|
specification_version: 4
|
470
473
|
summary: Slack Web and RealTime API client.
|
471
474
|
test_files:
|
472
475
|
- spec/fixtures/slack/web/429_error.yml
|
476
|
+
- spec/fixtures/slack/web/503_error.yml
|
473
477
|
- spec/fixtures/slack/web/auth_test_error.yml
|
474
478
|
- spec/fixtures/slack/web/auth_test_success.yml
|
475
479
|
- spec/fixtures/slack/web/channels_info.yml
|
@@ -533,12 +537,14 @@ test_files:
|
|
533
537
|
- spec/slack/web/api/endpoints/users_prefs_spec.rb
|
534
538
|
- spec/slack/web/api/endpoints/users_profile_spec.rb
|
535
539
|
- spec/slack/web/api/error_spec.rb
|
540
|
+
- spec/slack/web/api/errors/service_unavailable_spec.rb
|
536
541
|
- spec/slack/web/api/errors/slack_error_spec.rb
|
537
542
|
- spec/slack/web/api/mixins/channels_spec.rb
|
538
543
|
- spec/slack/web/api/mixins/groups_spec.rb
|
539
544
|
- spec/slack/web/api/mixins/users_spec.rb
|
540
545
|
- spec/slack/web/api/pagination/cursor_spec.rb
|
541
546
|
- spec/slack/web/client_spec.rb
|
547
|
+
- spec/slack/web/faraday/response/raise_error_spec.rb
|
542
548
|
- spec/spec_helper.rb
|
543
549
|
- spec/support/queue_with_timeout.rb
|
544
550
|
- spec/support/real_time/concurrency/mock.rb
|