slack-ruby-client 0.14.5 → 0.14.6

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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/CHANGELOG.md +11 -4
  4. data/README.md +51 -19
  5. data/bin/commands.rb +12 -0
  6. data/bin/commands/admin_apps_approved.rb +17 -0
  7. data/bin/commands/admin_apps_restricted.rb +17 -0
  8. data/bin/commands/admin_conversations.rb +17 -0
  9. data/bin/commands/admin_emoji.rb +54 -0
  10. data/bin/commands/admin_inviteRequests.rb +36 -0
  11. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  12. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  13. data/bin/commands/admin_teams.rb +27 -0
  14. data/bin/commands/admin_teams_admins.rb +16 -0
  15. data/bin/commands/admin_teams_owners.rb +16 -0
  16. data/bin/commands/admin_teams_settings.rb +64 -0
  17. data/bin/commands/admin_users.rb +97 -0
  18. data/bin/commands/chat.rb +8 -8
  19. data/bin/commands/conversations.rb +1 -1
  20. data/bin/commands/files.rb +1 -0
  21. data/bin/commands/files_remote.rb +1 -1
  22. data/bin/commands/oauth.rb +1 -1
  23. data/lib/slack-ruby-client.rb +1 -0
  24. data/lib/slack/version.rb +1 -1
  25. data/lib/slack/web/api/endpoints.rb +24 -0
  26. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  27. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  28. data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -0
  29. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  30. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  31. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  32. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  33. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  34. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  35. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  36. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  37. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  38. data/lib/slack/web/api/endpoints/chat.rb +8 -8
  39. data/lib/slack/web/api/endpoints/conversations.rb +1 -1
  40. data/lib/slack/web/api/endpoints/files.rb +2 -0
  41. data/lib/slack/web/api/endpoints/files_remote.rb +1 -1
  42. data/lib/slack/web/api/endpoints/oauth.rb +1 -1
  43. data/lib/slack/web/api/errors.rb +566 -0
  44. data/lib/slack/web/api/errors/slack_error.rb +12 -0
  45. data/lib/slack/web/api/templates/errors.erb +20 -0
  46. data/lib/slack/web/client.rb +1 -1
  47. data/lib/slack/web/faraday/response/raise_error.rb +4 -1
  48. data/lib/tasks/real_time.rake +1 -1
  49. data/lib/tasks/web.rake +10 -1
  50. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  51. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  52. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  53. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +13 -0
  54. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  55. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  56. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  57. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  58. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  59. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  60. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  61. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  62. data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
  63. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +2 -2
  64. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +3 -3
  65. data/spec/slack/web/api/endpoints/conversations_spec.rb +1 -1
  66. data/spec/slack/web/api/errors/slack_error_spec.rb +22 -0
  67. data/spec/slack/web/faraday/response/raise_error_spec.rb +26 -3
  68. metadata +54 -2
@@ -7,10 +7,10 @@ RSpec.describe Slack::Web::Api::Endpoints::AppsPermissions do
7
7
  let(:client) { Slack::Web::Client.new }
8
8
  context 'apps.permissions_request' do
9
9
  it 'requires scopes' do
10
- expect { client.apps_permissions_request(trigger_id: ' ') }.to raise_error ArgumentError, /Required arguments :scopes missing/
10
+ expect { client.apps_permissions_request(trigger_id: '') }.to raise_error ArgumentError, /Required arguments :scopes missing/
11
11
  end
12
12
  it 'requires trigger_id' do
13
- expect { client.apps_permissions_request(scopes: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
13
+ expect { client.apps_permissions_request(scopes: '') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
14
14
  end
15
15
  end
16
16
  end
@@ -7,13 +7,13 @@ RSpec.describe Slack::Web::Api::Endpoints::AppsPermissionsUsers do
7
7
  let(:client) { Slack::Web::Client.new }
8
8
  context 'apps.permissions.users_request' do
9
9
  it 'requires scopes' do
10
- expect { client.apps_permissions_users_request(trigger_id: ' ', user: ' ') }.to raise_error ArgumentError, /Required arguments :scopes missing/
10
+ expect { client.apps_permissions_users_request(trigger_id: '', user: '') }.to raise_error ArgumentError, /Required arguments :scopes missing/
11
11
  end
12
12
  it 'requires trigger_id' do
13
- expect { client.apps_permissions_users_request(scopes: ' ', user: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
13
+ expect { client.apps_permissions_users_request(scopes: '', user: '') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
14
14
  end
15
15
  it 'requires user' do
16
- expect { client.apps_permissions_users_request(scopes: ' ', trigger_id: ' ') }.to raise_error ArgumentError, /Required arguments :user missing/
16
+ expect { client.apps_permissions_users_request(scopes: '', trigger_id: '') }.to raise_error ArgumentError, /Required arguments :user missing/
17
17
  end
18
18
  end
19
19
  end
@@ -63,7 +63,7 @@ RSpec.describe Slack::Web::Api::Endpoints::Conversations do
63
63
  end
64
64
  context 'conversations_rename' do
65
65
  it 'requires channel' do
66
- expect { client.conversations_rename(name: ' ') }.to raise_error ArgumentError, /Required arguments :channel missing/
66
+ expect { client.conversations_rename(name: '') }.to raise_error ArgumentError, /Required arguments :channel missing/
67
67
  end
68
68
  it 'requires name' do
69
69
  expect { client.conversations_rename(channel: 'C1234567890') }.to raise_error ArgumentError, /Required arguments :name missing/
@@ -11,6 +11,28 @@ RSpec.describe Slack::Web::Api::Errors::SlackError do
11
11
  rescue described_class => e
12
12
  expect(e.response).not_to be_nil
13
13
  expect(e.response.status).to eq 200
14
+ expect(e.message).to eql 'not_authed'
15
+ expect(e.error).to eql 'not_authed'
16
+ expect(e.response_metadata).to be_nil
17
+ end
18
+ end
19
+
20
+ it 'provides access to any response_metadata', vcr: { cassette_name: 'web/views_open_error' } do
21
+ begin
22
+ client.views_open(trigger_id: 'trigger_id', view: {})
23
+ raise 'Expected to receive Slack::Web::Api::Errors::SlackError.'
24
+ rescue described_class => e
25
+ expect(e.response).not_to be_nil
26
+ expect(e.response.status).to eq 200
27
+ expect(e.message).to eql 'invalid_arguments'
28
+ expect(e.error).to eql 'invalid_arguments'
29
+ expect(e.response_metadata).to eq(
30
+ 'messages' => [
31
+ "[ERROR] missing required field: title [json-pointer:\/view]",
32
+ "[ERROR] missing required field: blocks [json-pointer:\/view]",
33
+ "[ERROR] missing required field: type [json-pointer:\/view]"
34
+ ]
35
+ )
14
36
  end
15
37
  end
16
38
  end
@@ -28,12 +28,34 @@ RSpec.describe Slack::Web::Faraday::Response::RaiseError do
28
28
  end
29
29
  end
30
30
 
31
- context 'with a single error in the body' do
32
- let(:body) { { 'error' => 'already_in_channel' } }
31
+ context 'with a single known error in the body' do
32
+ let(:body) do
33
+ {
34
+ 'ok' => false,
35
+ 'error' => 'already_in_channel',
36
+ 'response_metadata' => { 'messages' => [] }
37
+ }
38
+ end
39
+
40
+ it 'raises an error of the matching type with the error message' do
41
+ expect { raise_error_obj.on_complete(env) }.to(
42
+ raise_error(Slack::Web::Api::Errors::AlreadyInChannel, 'already_in_channel')
43
+ )
44
+ end
45
+ end
46
+
47
+ context 'with a single unknown error in the body' do
48
+ let(:body) do
49
+ {
50
+ 'ok' => false,
51
+ 'error' => 'unknown_error',
52
+ 'response_metadata' => { 'messages' => [] }
53
+ }
54
+ end
33
55
 
34
56
  it 'raises a SlackError with the error message' do
35
57
  expect { raise_error_obj.on_complete(env) }.to(
36
- raise_error(Slack::Web::Api::Errors::SlackError, 'already_in_channel')
58
+ raise_error(Slack::Web::Api::Errors::SlackError, 'unknown_error')
37
59
  )
38
60
  end
39
61
  end
@@ -41,6 +63,7 @@ RSpec.describe Slack::Web::Faraday::Response::RaiseError do
41
63
  context 'with multiple errors in the body' do
42
64
  let(:body) do
43
65
  {
66
+ 'ok' => false,
44
67
  'errors' => [
45
68
  { 'error' => 'already_in_channel' },
46
69
  { 'error' => 'something_else_terrible' }
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.14.5
4
+ version: 0.14.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-23 00:00:00.000000000 Z
11
+ date: 2020-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -258,7 +258,19 @@ files:
258
258
  - UPGRADING.md
259
259
  - bin/commands.rb
260
260
  - bin/commands/admin_apps.rb
261
+ - bin/commands/admin_apps_approved.rb
261
262
  - bin/commands/admin_apps_requests.rb
263
+ - bin/commands/admin_apps_restricted.rb
264
+ - bin/commands/admin_conversations.rb
265
+ - bin/commands/admin_emoji.rb
266
+ - bin/commands/admin_inviteRequests.rb
267
+ - bin/commands/admin_inviteRequests_approved.rb
268
+ - bin/commands/admin_inviteRequests_denied.rb
269
+ - bin/commands/admin_teams.rb
270
+ - bin/commands/admin_teams_admins.rb
271
+ - bin/commands/admin_teams_owners.rb
272
+ - bin/commands/admin_teams_settings.rb
273
+ - bin/commands/admin_users.rb
262
274
  - bin/commands/admin_users_session.rb
263
275
  - bin/commands/api.rb
264
276
  - bin/commands/apps.rb
@@ -356,7 +368,19 @@ files:
356
368
  - lib/slack/version.rb
357
369
  - lib/slack/web/api/endpoints.rb
358
370
  - lib/slack/web/api/endpoints/admin_apps.rb
371
+ - lib/slack/web/api/endpoints/admin_apps_approved.rb
359
372
  - lib/slack/web/api/endpoints/admin_apps_requests.rb
373
+ - lib/slack/web/api/endpoints/admin_apps_restricted.rb
374
+ - lib/slack/web/api/endpoints/admin_conversations.rb
375
+ - lib/slack/web/api/endpoints/admin_emoji.rb
376
+ - lib/slack/web/api/endpoints/admin_inviteRequests.rb
377
+ - lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb
378
+ - lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb
379
+ - lib/slack/web/api/endpoints/admin_teams.rb
380
+ - lib/slack/web/api/endpoints/admin_teams_admins.rb
381
+ - lib/slack/web/api/endpoints/admin_teams_owners.rb
382
+ - lib/slack/web/api/endpoints/admin_teams_settings.rb
383
+ - lib/slack/web/api/endpoints/admin_users.rb
360
384
  - lib/slack/web/api/endpoints/admin_users_session.rb
361
385
  - lib/slack/web/api/endpoints/api.rb
362
386
  - lib/slack/web/api/endpoints/apps.rb
@@ -399,6 +423,7 @@ files:
399
423
  - lib/slack/web/api/endpoints/users_profile.rb
400
424
  - lib/slack/web/api/endpoints/views.rb
401
425
  - lib/slack/web/api/error.rb
426
+ - lib/slack/web/api/errors.rb
402
427
  - lib/slack/web/api/errors/slack_error.rb
403
428
  - lib/slack/web/api/errors/too_many_requests_error.rb
404
429
  - lib/slack/web/api/mixins.rb
@@ -425,6 +450,7 @@ files:
425
450
  - lib/slack/web/api/templates/command.erb
426
451
  - lib/slack/web/api/templates/commands.erb
427
452
  - lib/slack/web/api/templates/endpoints.erb
453
+ - lib/slack/web/api/templates/errors.erb
428
454
  - lib/slack/web/api/templates/method.erb
429
455
  - lib/slack/web/api/templates/method_spec.erb
430
456
  - lib/slack/web/client.rb
@@ -452,6 +478,7 @@ files:
452
478
  - spec/fixtures/slack/web/rtm_start.yml
453
479
  - spec/fixtures/slack/web/users_info.yml
454
480
  - spec/fixtures/slack/web/users_list.yml
481
+ - spec/fixtures/slack/web/views_open_error.yml
455
482
  - spec/integration/integration_spec.rb
456
483
  - spec/slack/config_spec.rb
457
484
  - spec/slack/events/config_spec.rb
@@ -476,9 +503,21 @@ files:
476
503
  - spec/slack/real_time/store_spec.rb
477
504
  - spec/slack/slack_spec.rb
478
505
  - spec/slack/version_spec.rb
506
+ - spec/slack/web/api/endpoints/admin_apps_approved_spec.rb
479
507
  - spec/slack/web/api/endpoints/admin_apps_requests_spec.rb
508
+ - spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb
480
509
  - spec/slack/web/api/endpoints/admin_apps_spec.rb
510
+ - spec/slack/web/api/endpoints/admin_conversations_spec.rb
511
+ - spec/slack/web/api/endpoints/admin_emoji_spec.rb
512
+ - spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb
513
+ - spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb
514
+ - spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb
515
+ - spec/slack/web/api/endpoints/admin_teams_admins_spec.rb
516
+ - spec/slack/web/api/endpoints/admin_teams_owners_spec.rb
517
+ - spec/slack/web/api/endpoints/admin_teams_settings_spec.rb
518
+ - spec/slack/web/api/endpoints/admin_teams_spec.rb
481
519
  - spec/slack/web/api/endpoints/admin_users_session_spec.rb
520
+ - spec/slack/web/api/endpoints/admin_users_spec.rb
482
521
  - spec/slack/web/api/endpoints/api_spec.rb
483
522
  - spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb
484
523
  - spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb
@@ -570,6 +609,7 @@ test_files:
570
609
  - spec/fixtures/slack/web/rtm_start.yml
571
610
  - spec/fixtures/slack/web/users_info.yml
572
611
  - spec/fixtures/slack/web/users_list.yml
612
+ - spec/fixtures/slack/web/views_open_error.yml
573
613
  - spec/integration/integration_spec.rb
574
614
  - spec/slack/config_spec.rb
575
615
  - spec/slack/events/config_spec.rb
@@ -594,9 +634,21 @@ test_files:
594
634
  - spec/slack/real_time/store_spec.rb
595
635
  - spec/slack/slack_spec.rb
596
636
  - spec/slack/version_spec.rb
637
+ - spec/slack/web/api/endpoints/admin_apps_approved_spec.rb
597
638
  - spec/slack/web/api/endpoints/admin_apps_requests_spec.rb
639
+ - spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb
598
640
  - spec/slack/web/api/endpoints/admin_apps_spec.rb
641
+ - spec/slack/web/api/endpoints/admin_conversations_spec.rb
642
+ - spec/slack/web/api/endpoints/admin_emoji_spec.rb
643
+ - spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb
644
+ - spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb
645
+ - spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb
646
+ - spec/slack/web/api/endpoints/admin_teams_admins_spec.rb
647
+ - spec/slack/web/api/endpoints/admin_teams_owners_spec.rb
648
+ - spec/slack/web/api/endpoints/admin_teams_settings_spec.rb
649
+ - spec/slack/web/api/endpoints/admin_teams_spec.rb
599
650
  - spec/slack/web/api/endpoints/admin_users_session_spec.rb
651
+ - spec/slack/web/api/endpoints/admin_users_spec.rb
600
652
  - spec/slack/web/api/endpoints/api_spec.rb
601
653
  - spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb
602
654
  - spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb