slack-ruby-client 0.15.0 → 1.0.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/.rubocop.yml +6 -1
- data/.rubocop_todo.yml +75 -43
- data/.travis.yml +2 -4
- data/CHANGELOG.md +32 -0
- data/CONTRIBUTING.md +6 -13
- data/LICENSE.md +1 -1
- data/README.md +19 -36
- data/RELEASING.md +1 -1
- data/UPGRADING.md +56 -2
- data/bin/commands/admin_analytics.rb +16 -0
- data/bin/commands/admin_apps.rb +26 -2
- data/bin/commands/admin_apps_requests.rb +1 -0
- data/bin/commands/admin_auth_policy.rb +39 -0
- data/bin/commands/admin_barriers.rb +47 -0
- data/bin/commands/admin_conversations.rb +154 -2
- data/bin/commands/admin_conversations_ekm.rb +17 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +3 -3
- data/bin/commands/admin_conversations_whitelist.rb +1 -1
- data/bin/commands/admin_emoji.rb +1 -1
- data/bin/commands/admin_teams.rb +1 -1
- data/bin/commands/admin_usergroups.rb +2 -2
- data/bin/commands/admin_users.rb +3 -2
- data/bin/commands/admin_users_session.rb +62 -0
- data/bin/commands/api.rb +0 -1
- data/bin/commands/apps_connections.rb +13 -0
- data/bin/commands/apps_event_authorizations.rb +16 -0
- data/bin/commands/apps_manifest.rb +51 -0
- data/bin/commands/auth_teams.rb +16 -0
- data/bin/commands/bots.rb +1 -0
- data/bin/commands/channels.rb +1 -155
- data/bin/commands/chat.rb +12 -7
- data/bin/commands/chat_scheduledMessages.rb +1 -0
- data/bin/commands/conversations.rb +71 -2
- data/bin/commands/dnd.rb +2 -0
- data/bin/commands/files.rb +6 -4
- data/bin/commands/files_remote.rb +2 -2
- data/bin/commands/groups.rb +1 -162
- data/bin/commands/im.rb +1 -63
- data/bin/commands/migration.rb +1 -0
- data/bin/commands/mpim.rb +1 -61
- data/bin/commands/oauth.rb +0 -13
- data/bin/commands/oauth_v2.rb +13 -1
- data/bin/commands/openid_connect.rb +27 -0
- data/bin/commands/pins.rb +2 -4
- data/bin/commands/reactions.rb +1 -0
- data/bin/commands/reminders.rb +6 -0
- data/bin/commands/rtm.rb +2 -2
- data/bin/commands/search.rb +4 -0
- data/bin/commands/stars.rb +7 -6
- data/bin/commands/team.rb +3 -0
- data/bin/commands/team_billing.rb +13 -0
- data/bin/commands/team_preferences.rb +13 -0
- data/bin/commands/tooling_tokens.rb +14 -0
- data/bin/commands/usergroups.rb +5 -0
- data/bin/commands/usergroups_users.rb +2 -0
- data/bin/commands/users.rb +4 -2
- data/bin/commands/users_profile.rb +5 -5
- data/bin/commands/views.rb +2 -2
- data/bin/commands/workflows.rb +38 -0
- data/bin/commands.rb +13 -9
- data/lib/slack/config.rb +1 -2
- data/lib/slack/events/request.rb +10 -4
- data/lib/slack/real_time/client.rb +6 -6
- data/lib/slack/real_time/concurrency/async.rb +6 -8
- data/lib/slack/real_time/concurrency.rb +0 -2
- data/lib/slack/real_time/config.rb +5 -14
- data/lib/slack/real_time/socket.rb +1 -2
- data/lib/slack/real_time/stores/base.rb +1 -6
- data/lib/slack/real_time/stores/starter.rb +6 -3
- data/lib/slack/real_time/stores/store.rb +5 -0
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +42 -6
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +4 -2
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
- data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +233 -3
- data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +3 -3
- data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +3 -3
- data/lib/slack/web/api/endpoints/admin_emoji.rb +10 -10
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +7 -7
- data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +3 -3
- data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_teams.rb +7 -7
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +5 -5
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +11 -11
- data/lib/slack/web/api/endpoints/admin_users.rb +23 -23
- data/lib/slack/web/api/endpoints/admin_users_session.rb +97 -3
- data/lib/slack/web/api/endpoints/api.rb +1 -3
- data/lib/slack/web/api/endpoints/apps.rb +2 -2
- data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
- data/lib/slack/web/api/endpoints/apps_manifest.rb +75 -0
- data/lib/slack/web/api/endpoints/auth.rb +1 -1
- data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
- data/lib/slack/web/api/endpoints/bots.rb +3 -1
- data/lib/slack/web/api/endpoints/calls.rb +15 -15
- data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
- data/lib/slack/web/api/endpoints/channels.rb +0 -259
- data/lib/slack/web/api/endpoints/chat.rb +65 -55
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +4 -2
- data/lib/slack/web/api/endpoints/conversations.rb +134 -24
- data/lib/slack/web/api/endpoints/dialog.rb +2 -2
- data/lib/slack/web/api/endpoints/dnd.rb +6 -3
- data/lib/slack/web/api/endpoints/files.rb +19 -15
- data/lib/slack/web/api/endpoints/files_comments.rb +1 -1
- data/lib/slack/web/api/endpoints/files_remote.rb +22 -22
- data/lib/slack/web/api/endpoints/groups.rb +0 -269
- data/lib/slack/web/api/endpoints/im.rb +0 -107
- data/lib/slack/web/api/endpoints/migration.rb +4 -2
- data/lib/slack/web/api/endpoints/mpim.rb +0 -102
- data/lib/slack/web/api/endpoints/oauth.rb +5 -27
- data/lib/slack/web/api/endpoints/oauth_v2.rb +24 -6
- data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
- data/lib/slack/web/api/endpoints/pins.rb +4 -9
- data/lib/slack/web/api/endpoints/reactions.rb +13 -11
- data/lib/slack/web/api/endpoints/reminders.rb +17 -5
- data/lib/slack/web/api/endpoints/rtm.rb +10 -10
- data/lib/slack/web/api/endpoints/search.rb +27 -13
- data/lib/slack/web/api/endpoints/stars.rb +11 -9
- data/lib/slack/web/api/endpoints/team.rb +11 -5
- data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
- data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
- data/lib/slack/web/api/endpoints/team_profile.rb +1 -1
- data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
- data/lib/slack/web/api/endpoints/usergroups.rb +26 -16
- data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -5
- data/lib/slack/web/api/endpoints/users.rb +20 -18
- data/lib/slack/web/api/endpoints/users_profile.rb +7 -7
- data/lib/slack/web/api/endpoints/views.rb +13 -13
- data/lib/slack/web/api/endpoints/workflows.rb +61 -0
- data/lib/slack/web/api/endpoints.rb +26 -20
- data/lib/slack/web/api/errors/server_error.rb +37 -0
- data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -4
- data/lib/slack/web/api/errors.rb +394 -10
- data/lib/slack/web/api/mixins/conversations.id.rb +1 -3
- data/lib/slack/web/api/mixins/ids.id.rb +2 -2
- data/lib/slack/web/api/mixins/users.id.rb +1 -3
- data/lib/slack/web/api/mixins.rb +0 -2
- data/lib/slack/web/api/patches/chat.1.patch +6 -8
- data/lib/slack/web/api/templates/endpoints.erb +1 -2
- data/lib/slack/web/api/templates/method_spec.erb +1 -1
- data/lib/slack/web/config.rb +2 -0
- data/lib/slack/web/faraday/connection.rb +2 -2
- data/lib/slack/web/faraday/request.rb +2 -1
- data/lib/slack/web/faraday/response/raise_error.rb +12 -1
- data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
- data/lib/slack/web/pagination/cursor.rb +1 -5
- data/lib/slack-ruby-client.rb +2 -0
- data/lib/tasks/web.rake +11 -3
- data/slack-ruby-client.gemspec +2 -3
- data/spec/fixtures/slack/web/429_error.yml +50 -54
- data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
- data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
- data/spec/fixtures/slack/web/conversations_info.yml +167 -0
- data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
- data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
- data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
- data/spec/fixtures/slack/web/rtm_start.yml +771 -60
- data/spec/fixtures/slack/web/users_info.yml +153 -69
- data/spec/fixtures/slack/web/users_list.yml +102 -41
- data/spec/fixtures/slack/web/views_open_error.yml +49 -42
- data/spec/slack/events/request_spec.rb +13 -8
- data/spec/slack/real_time/client_spec.rb +35 -22
- data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
- data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
- data/spec/slack/real_time/event_handlers/bot_spec.rb +1 -1
- data/spec/slack/real_time/event_handlers/channel_spec.rb +1 -1
- data/spec/slack/real_time/event_handlers/im_spec.rb +5 -5
- data/spec/slack/real_time/event_handlers/user_spec.rb +2 -2
- data/spec/slack/real_time/rtm_connect_spec.rb +1 -1
- data/spec/slack/real_time/rtm_start_spec.rb +1 -1
- data/spec/slack/slack_spec.rb +3 -1
- data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_apps_spec.rb +10 -0
- data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
- data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
- data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → admin_conversations_ekm_spec.rb} +1 -1
- data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +5 -5
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +85 -0
- data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +6 -6
- data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +10 -10
- data/spec/slack/web/api/endpoints/admin_teams_spec.rb +2 -2
- data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +6 -6
- data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +28 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +15 -23
- data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → apps_connections_spec.rb} +1 -1
- data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
- data/spec/slack/web/api/endpoints/apps_spec.rb +2 -2
- data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/calls_participants_spec.rb +4 -4
- data/spec/slack/web/api/endpoints/calls_spec.rb +2 -2
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +4 -6
- data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +2 -2
- data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -5
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +2 -2
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +3 -3
- data/spec/slack/web/api/endpoints/files_spec.rb +4 -4
- data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -11
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +6 -3
- data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/pins_spec.rb +1 -4
- data/spec/slack/web/api/endpoints/reactions_spec.rb +3 -3
- data/spec/slack/web/api/endpoints/reminders_spec.rb +2 -2
- data/spec/slack/web/api/endpoints/team_billing_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +2 -2
- data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
- data/spec/slack/web/api/error_spec.rb +5 -7
- data/spec/slack/web/api/errors/slack_error_spec.rb +21 -26
- data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
- data/spec/slack/web/api/mixins/conversations_spec.rb +11 -9
- data/spec/slack/web/api/mixins/users_spec.rb +1 -1
- data/spec/slack/web/api/pagination/cursor_spec.rb +1 -3
- data/spec/slack/web/client_spec.rb +112 -16
- data/spec/slack/web/faraday/request_spec.rb +80 -0
- data/spec/slack/web/faraday/response/raise_error_spec.rb +8 -6
- data/spec/spec_helper.rb +1 -1
- data/spec/support/real_time/connected_client.rb +1 -7
- data/spec/support/vcr.rb +36 -1
- metadata +58 -155
- data/examples/hi_real_time/Gemfile +0 -6
- data/examples/hi_real_time/hi.gif +0 -0
- data/examples/hi_real_time/hi.rb +0 -41
- data/examples/hi_real_time_async_celluloid/Gemfile +0 -7
- data/examples/hi_real_time_async_celluloid/Procfile +0 -2
- data/examples/hi_real_time_async_celluloid/hi.rb +0 -39
- data/examples/hi_real_time_async_eventmachine/Gemfile +0 -7
- data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
- data/examples/hi_real_time_async_eventmachine/hi.rb +0 -39
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -142
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -85
- data/lib/slack/web/api/mixins/channels.id.json +0 -20
- data/lib/slack/web/api/mixins/channels.id.rb +0 -27
- data/lib/slack/web/api/mixins/groups.id.json +0 -20
- data/lib/slack/web/api/mixins/groups.id.rb +0 -27
- data/spec/fixtures/slack/web/503_error.yml +0 -14
- data/spec/fixtures/slack/web/channels_info.yml +0 -139
- data/spec/fixtures/slack/web/groups_info.yml +0 -43
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -116
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -57
- data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +0 -32
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -16
- data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -19
- data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -101
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -13
- data/spec/slack/web/api/endpoints/im_spec.rb +0 -39
- data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -39
- data/spec/slack/web/api/endpoints/views_spec.rb +0 -29
- data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -17
- data/spec/slack/web/api/mixins/channels_spec.rb +0 -43
- data/spec/slack/web/api/mixins/groups_spec.rb +0 -43
data/bin/commands.rb
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
# This file was auto-generated by lib/tasks/web.rake
|
|
3
3
|
|
|
4
|
+
require 'commands/admin_analytics'
|
|
4
5
|
require 'commands/admin_apps'
|
|
5
6
|
require 'commands/admin_apps_approved'
|
|
6
7
|
require 'commands/admin_apps_requests'
|
|
7
8
|
require 'commands/admin_apps_restricted'
|
|
9
|
+
require 'commands/admin_auth_policy'
|
|
10
|
+
require 'commands/admin_barriers'
|
|
8
11
|
require 'commands/admin_conversations'
|
|
12
|
+
require 'commands/admin_conversations_ekm'
|
|
9
13
|
require 'commands/admin_conversations_restrictAccess'
|
|
10
|
-
require 'commands/admin_conversations_whitelist'
|
|
11
14
|
require 'commands/admin_emoji'
|
|
12
15
|
require 'commands/admin_inviteRequests'
|
|
13
16
|
require 'commands/admin_inviteRequests_approved'
|
|
@@ -21,15 +24,14 @@ require 'commands/admin_users'
|
|
|
21
24
|
require 'commands/admin_users_session'
|
|
22
25
|
require 'commands/api'
|
|
23
26
|
require 'commands/apps'
|
|
24
|
-
require 'commands/
|
|
25
|
-
require 'commands/
|
|
26
|
-
require 'commands/
|
|
27
|
-
require 'commands/apps_permissions_users'
|
|
27
|
+
require 'commands/apps_connections'
|
|
28
|
+
require 'commands/apps_event_authorizations'
|
|
29
|
+
require 'commands/apps_manifest'
|
|
28
30
|
require 'commands/auth'
|
|
31
|
+
require 'commands/auth_teams'
|
|
29
32
|
require 'commands/bots'
|
|
30
33
|
require 'commands/calls'
|
|
31
34
|
require 'commands/calls_participants'
|
|
32
|
-
require 'commands/channels'
|
|
33
35
|
require 'commands/chat'
|
|
34
36
|
require 'commands/chat_scheduledMessages'
|
|
35
37
|
require 'commands/conversations'
|
|
@@ -39,12 +41,10 @@ require 'commands/emoji'
|
|
|
39
41
|
require 'commands/files'
|
|
40
42
|
require 'commands/files_comments'
|
|
41
43
|
require 'commands/files_remote'
|
|
42
|
-
require 'commands/groups'
|
|
43
|
-
require 'commands/im'
|
|
44
44
|
require 'commands/migration'
|
|
45
|
-
require 'commands/mpim'
|
|
46
45
|
require 'commands/oauth'
|
|
47
46
|
require 'commands/oauth_v2'
|
|
47
|
+
require 'commands/openid_connect'
|
|
48
48
|
require 'commands/pins'
|
|
49
49
|
require 'commands/reactions'
|
|
50
50
|
require 'commands/reminders'
|
|
@@ -52,7 +52,10 @@ require 'commands/rtm'
|
|
|
52
52
|
require 'commands/search'
|
|
53
53
|
require 'commands/stars'
|
|
54
54
|
require 'commands/team'
|
|
55
|
+
require 'commands/team_billing'
|
|
56
|
+
require 'commands/team_preferences'
|
|
55
57
|
require 'commands/team_profile'
|
|
58
|
+
require 'commands/tooling_tokens'
|
|
56
59
|
require 'commands/usergroups'
|
|
57
60
|
require 'commands/usergroups_users'
|
|
58
61
|
require 'commands/users'
|
|
@@ -60,3 +63,4 @@ require 'commands/users_admin'
|
|
|
60
63
|
require 'commands/users_prefs'
|
|
61
64
|
require 'commands/users_profile'
|
|
62
65
|
require 'commands/views'
|
|
66
|
+
require 'commands/workflows'
|
data/lib/slack/config.rb
CHANGED
data/lib/slack/events/request.rb
CHANGED
|
@@ -3,7 +3,9 @@ module Slack
|
|
|
3
3
|
module Events
|
|
4
4
|
class Request
|
|
5
5
|
class MissingSigningSecret < StandardError; end
|
|
6
|
+
|
|
6
7
|
class TimestampExpired < StandardError; end
|
|
8
|
+
|
|
7
9
|
class InvalidSignature < StandardError; end
|
|
8
10
|
|
|
9
11
|
attr_reader :http_request,
|
|
@@ -19,13 +21,13 @@ module Slack
|
|
|
19
21
|
|
|
20
22
|
# Request timestamp.
|
|
21
23
|
def timestamp
|
|
22
|
-
@timestamp ||= http_request.
|
|
24
|
+
@timestamp ||= http_request.get_header('HTTP_X_SLACK_REQUEST_TIMESTAMP')
|
|
23
25
|
end
|
|
24
26
|
|
|
25
27
|
# The signature is created by combining the signing secret with the body of the request
|
|
26
28
|
# Slack is sending using a standard HMAC-SHA256 keyed hash.
|
|
27
29
|
def signature
|
|
28
|
-
@signature ||= http_request.
|
|
30
|
+
@signature ||= http_request.get_header('HTTP_X_SLACK_SIGNATURE')
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
# Signature version.
|
|
@@ -35,7 +37,11 @@ module Slack
|
|
|
35
37
|
|
|
36
38
|
# Request body.
|
|
37
39
|
def body
|
|
38
|
-
@body ||=
|
|
40
|
+
@body ||= begin
|
|
41
|
+
body = http_request.body.read
|
|
42
|
+
http_request.body.rewind
|
|
43
|
+
body
|
|
44
|
+
end
|
|
39
45
|
end
|
|
40
46
|
|
|
41
47
|
# Returns true if the signature coming from Slack has expired.
|
|
@@ -47,7 +53,7 @@ module Slack
|
|
|
47
53
|
def valid?
|
|
48
54
|
raise MissingSigningSecret unless signing_secret
|
|
49
55
|
|
|
50
|
-
digest = OpenSSL::Digest
|
|
56
|
+
digest = OpenSSL::Digest.new('SHA256')
|
|
51
57
|
signature_basestring = [version, timestamp, body].join(':')
|
|
52
58
|
hex_hash = OpenSSL::HMAC.hexdigest(digest, signing_secret, signature_basestring)
|
|
53
59
|
computed_signature = [version, hex_hash].join('=')
|
|
@@ -3,6 +3,7 @@ module Slack
|
|
|
3
3
|
module RealTime
|
|
4
4
|
class Client
|
|
5
5
|
class ClientNotStartedError < StandardError; end
|
|
6
|
+
|
|
6
7
|
class ClientAlreadyStartedError < StandardError; end
|
|
7
8
|
|
|
8
9
|
include Api::MessageId
|
|
@@ -16,11 +17,7 @@ module Slack
|
|
|
16
17
|
attr_accessor :events
|
|
17
18
|
end
|
|
18
19
|
|
|
19
|
-
attr_accessor :web_client
|
|
20
|
-
attr_accessor :store
|
|
21
|
-
attr_accessor :url
|
|
22
|
-
attr_accessor(*Config::ATTRIBUTES)
|
|
23
|
-
attr_accessor :logger
|
|
20
|
+
attr_accessor :web_client, :store, :url, *Config::ATTRIBUTES
|
|
24
21
|
|
|
25
22
|
protected :store_class, :store_class=
|
|
26
23
|
|
|
@@ -134,7 +131,7 @@ module Slack
|
|
|
134
131
|
rescue Slack::Web::Api::Errors::SlackError => e
|
|
135
132
|
# stop pinging if bot was uninstalled
|
|
136
133
|
case e.message
|
|
137
|
-
when 'account_inactive', 'invalid_auth'
|
|
134
|
+
when 'account_inactive', 'invalid_auth'
|
|
138
135
|
logger.warn(to_s) { e.message }
|
|
139
136
|
raise e
|
|
140
137
|
end
|
|
@@ -202,6 +199,7 @@ module Slack
|
|
|
202
199
|
end
|
|
203
200
|
|
|
204
201
|
attr_reader :callbacks
|
|
202
|
+
|
|
205
203
|
def socket_class
|
|
206
204
|
concurrency::Socket
|
|
207
205
|
end
|
|
@@ -251,6 +249,8 @@ module Slack
|
|
|
251
249
|
end
|
|
252
250
|
|
|
253
251
|
def run_handlers(type, data)
|
|
252
|
+
return unless store.class.events
|
|
253
|
+
|
|
254
254
|
handlers = store.class.events[type.to_s]
|
|
255
255
|
handlers&.each do |handler|
|
|
256
256
|
store.instance_exec(data, &handler)
|
|
@@ -45,14 +45,12 @@ module Slack
|
|
|
45
45
|
@client_task&.stop
|
|
46
46
|
|
|
47
47
|
@client_task = task.async do |subtask|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
client.logger.error(subtask.to_s) { e.message }
|
|
55
|
-
end
|
|
48
|
+
subtask.annotate "#{client} run-loop"
|
|
49
|
+
client.run_loop
|
|
50
|
+
rescue ::Async::Wrapper::Cancelled => e
|
|
51
|
+
# Will get restarted by ping worker.
|
|
52
|
+
rescue StandardError => e
|
|
53
|
+
client.logger.error(subtask.to_s) { e.message }
|
|
56
54
|
end
|
|
57
55
|
|
|
58
56
|
@restart.wait
|
|
@@ -17,7 +17,8 @@ module Slack
|
|
|
17
17
|
logger
|
|
18
18
|
].freeze
|
|
19
19
|
|
|
20
|
-
attr_accessor(*Config::ATTRIBUTES)
|
|
20
|
+
attr_accessor(*Config::ATTRIBUTES - [:concurrency])
|
|
21
|
+
attr_writer :concurrency
|
|
21
22
|
|
|
22
23
|
def reset
|
|
23
24
|
self.websocket_ping = 30
|
|
@@ -37,19 +38,9 @@ module Slack
|
|
|
37
38
|
private
|
|
38
39
|
|
|
39
40
|
def detect_concurrency
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
rescue LoadError, NameError
|
|
44
|
-
false # could not be loaded, missing dependencies
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
raise(
|
|
49
|
-
NoConcurrencyError,
|
|
50
|
-
'Missing concurrency. Add async-websocket, faye-websocket ' \
|
|
51
|
-
'or celluloid-io to your Gemfile.'
|
|
52
|
-
)
|
|
41
|
+
Slack::RealTime::Concurrency.const_get(:Async)
|
|
42
|
+
rescue LoadError, NameError
|
|
43
|
+
raise NoConcurrencyError, 'Missing concurrency. Add async-websocket to your Gemfile.'
|
|
53
44
|
end
|
|
54
45
|
end
|
|
55
46
|
|
|
@@ -8,12 +8,7 @@ module Slack
|
|
|
8
8
|
attr_accessor :events
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
-
attr_accessor :users
|
|
12
|
-
attr_accessor :bots
|
|
13
|
-
attr_accessor :channels
|
|
14
|
-
attr_accessor :groups
|
|
15
|
-
attr_accessor :teams
|
|
16
|
-
attr_accessor :ims
|
|
11
|
+
attr_accessor :users, :bots, :channels, :groups, :teams, :ims
|
|
17
12
|
|
|
18
13
|
def self
|
|
19
14
|
nil
|
|
@@ -4,9 +4,7 @@ module Slack
|
|
|
4
4
|
module Stores
|
|
5
5
|
# Only stores initial information.
|
|
6
6
|
class Starter < Base
|
|
7
|
-
attr_reader :self
|
|
8
|
-
|
|
9
|
-
attr_reader :team
|
|
7
|
+
attr_reader :self, :team
|
|
10
8
|
|
|
11
9
|
def initialize(attrs)
|
|
12
10
|
@team = Models::Team.new(attrs.team)
|
|
@@ -15,6 +13,11 @@ module Slack
|
|
|
15
13
|
|
|
16
14
|
### RealTime Events
|
|
17
15
|
|
|
16
|
+
# A shared channel invite was sent to a Slack user.
|
|
17
|
+
# @see https://api.slack.com/events/shared_channel_invite_received
|
|
18
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/shared_channel_invite_received.json
|
|
19
|
+
# on :shared_channel_invite_received do |data|
|
|
20
|
+
|
|
18
21
|
# An enterprise grid migration has started on an external workspace..
|
|
19
22
|
# @see https://api.slack.com/events/external_org_migration_started
|
|
20
23
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
@@ -55,6 +55,11 @@ module Slack
|
|
|
55
55
|
|
|
56
56
|
### RealTime Events
|
|
57
57
|
|
|
58
|
+
# A shared channel invite was sent to a Slack user.
|
|
59
|
+
# @see https://api.slack.com/events/shared_channel_invite_received
|
|
60
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/shared_channel_invite_received.json
|
|
61
|
+
# on :shared_channel_invite_received do |data|
|
|
62
|
+
|
|
58
63
|
# An enterprise grid migration has started on an external workspace..
|
|
59
64
|
# @see https://api.slack.com/events/external_org_migration_started
|
|
60
65
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
data/lib/slack/version.rb
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
|
3
|
+
|
|
4
|
+
module Slack
|
|
5
|
+
module Web
|
|
6
|
+
module Api
|
|
7
|
+
module Endpoints
|
|
8
|
+
module AdminAnalytics
|
|
9
|
+
#
|
|
10
|
+
# Retrieve analytics data for a given date, presented as a compressed JSON file
|
|
11
|
+
#
|
|
12
|
+
# @option options [string] :type
|
|
13
|
+
# The type of analytics to retrieve. The options are currently limited to member (for grid member analytics) and public_channel (for public channel analytics).
|
|
14
|
+
# @option options [date] :date
|
|
15
|
+
# Date to retrieve the analytics data for, expressed as YYYY-MM-DD in UTC.
|
|
16
|
+
# @option options [boolean] :metadata_only
|
|
17
|
+
# Retrieve metadata for the type of analytics indicated. Can be used only with type set to public_channel analytics. See detail below. Omit the date parameter when using this argument.
|
|
18
|
+
# @see https://api.slack.com/methods/admin.analytics.getFile
|
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.analytics/admin.analytics.getFile.json
|
|
20
|
+
def admin_analytics_getFile(options = {})
|
|
21
|
+
throw ArgumentError.new('Required arguments :type missing') if options[:type].nil?
|
|
22
|
+
post('admin.analytics.getFile', options)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -9,32 +9,68 @@ module Slack
|
|
|
9
9
|
#
|
|
10
10
|
# Approve an app for installation on a workspace.
|
|
11
11
|
#
|
|
12
|
-
# @option options [
|
|
12
|
+
# @option options [string] :app_id
|
|
13
13
|
# The id of the app to approve.
|
|
14
|
-
# @option options [Object] :
|
|
14
|
+
# @option options [Object] :enterprise_id
|
|
15
|
+
# The ID of the enterprise to approve the app on.
|
|
16
|
+
# @option options [string] :request_id
|
|
15
17
|
# The id of the request to approve.
|
|
16
18
|
# @option options [Object] :team_id
|
|
17
|
-
# .
|
|
19
|
+
# The ID of the workspace to approve the app on.
|
|
18
20
|
# @see https://api.slack.com/methods/admin.apps.approve
|
|
19
21
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.approve.json
|
|
20
22
|
def admin_apps_approve(options = {})
|
|
21
23
|
post('admin.apps.approve', options)
|
|
22
24
|
end
|
|
23
25
|
|
|
26
|
+
#
|
|
27
|
+
# Clear an app resolution
|
|
28
|
+
#
|
|
29
|
+
# @option options [string] :app_id
|
|
30
|
+
# The id of the app whose resolution you want to clear/undo.
|
|
31
|
+
# @option options [Object] :enterprise_id
|
|
32
|
+
# The enterprise to clear the app resolution from.
|
|
33
|
+
# @option options [Object] :team_id
|
|
34
|
+
# The workspace to clear the app resolution from.
|
|
35
|
+
# @see https://api.slack.com/methods/admin.apps.clearResolution
|
|
36
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.clearResolution.json
|
|
37
|
+
def admin_apps_clearResolution(options = {})
|
|
38
|
+
throw ArgumentError.new('Required arguments :app_id missing') if options[:app_id].nil?
|
|
39
|
+
post('admin.apps.clearResolution', options)
|
|
40
|
+
end
|
|
41
|
+
|
|
24
42
|
#
|
|
25
43
|
# Restrict an app for installation on a workspace.
|
|
26
44
|
#
|
|
27
|
-
# @option options [
|
|
45
|
+
# @option options [string] :app_id
|
|
28
46
|
# The id of the app to restrict.
|
|
29
|
-
# @option options [Object] :
|
|
47
|
+
# @option options [Object] :enterprise_id
|
|
48
|
+
# The ID of the enterprise to approve the app on.
|
|
49
|
+
# @option options [string] :request_id
|
|
30
50
|
# The id of the request to restrict.
|
|
31
51
|
# @option options [Object] :team_id
|
|
32
|
-
# .
|
|
52
|
+
# The ID of the workspace to approve the app on.
|
|
33
53
|
# @see https://api.slack.com/methods/admin.apps.restrict
|
|
34
54
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.restrict.json
|
|
35
55
|
def admin_apps_restrict(options = {})
|
|
36
56
|
post('admin.apps.restrict', options)
|
|
37
57
|
end
|
|
58
|
+
|
|
59
|
+
#
|
|
60
|
+
# Uninstall an app from one or many workspaces, or an entire enterprise organization.
|
|
61
|
+
#
|
|
62
|
+
# @option options [string] :app_id
|
|
63
|
+
# The ID of the app to uninstall.
|
|
64
|
+
# @option options [string] :enterprise_id
|
|
65
|
+
# The enterprise to completely uninstall the application from (across all workspaces). With an org-level token, this or team_ids is required.
|
|
66
|
+
# @option options [string] :team_ids
|
|
67
|
+
# IDs of the teams to uninstall from (max 100). With an org-level token, this or enterprise_id is required.
|
|
68
|
+
# @see https://api.slack.com/methods/admin.apps.uninstall
|
|
69
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.uninstall.json
|
|
70
|
+
def admin_apps_uninstall(options = {})
|
|
71
|
+
throw ArgumentError.new('Required arguments :app_id missing') if options[:app_id].nil?
|
|
72
|
+
post('admin.apps.uninstall', options)
|
|
73
|
+
end
|
|
38
74
|
end
|
|
39
75
|
end
|
|
40
76
|
end
|
|
@@ -9,11 +9,11 @@ module Slack
|
|
|
9
9
|
#
|
|
10
10
|
# List approved apps for an org or workspace.
|
|
11
11
|
#
|
|
12
|
-
# @option options [
|
|
12
|
+
# @option options [string] :cursor
|
|
13
13
|
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
14
14
|
# @option options [Object] :enterprise_id
|
|
15
15
|
# .
|
|
16
|
-
# @option options [
|
|
16
|
+
# @option options [integer] :limit
|
|
17
17
|
# The maximum number of items to return. Must be between 1 - 1000 both inclusive.
|
|
18
18
|
# @option options [Object] :team_id
|
|
19
19
|
# .
|
|
@@ -9,9 +9,11 @@ module Slack
|
|
|
9
9
|
#
|
|
10
10
|
# List app requests for a team/workspace.
|
|
11
11
|
#
|
|
12
|
-
# @option options [
|
|
12
|
+
# @option options [string] :cursor
|
|
13
13
|
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
14
|
-
# @option options [Object] :
|
|
14
|
+
# @option options [Object] :enterprise_id
|
|
15
|
+
# .
|
|
16
|
+
# @option options [integer] :limit
|
|
15
17
|
# The maximum number of items to return. Must be between 1 - 1000 both inclusive.
|
|
16
18
|
# @option options [Object] :team_id
|
|
17
19
|
# .
|
|
@@ -9,11 +9,11 @@ module Slack
|
|
|
9
9
|
#
|
|
10
10
|
# List restricted apps for an org or workspace.
|
|
11
11
|
#
|
|
12
|
-
# @option options [
|
|
12
|
+
# @option options [string] :cursor
|
|
13
13
|
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
14
14
|
# @option options [Object] :enterprise_id
|
|
15
15
|
# .
|
|
16
|
-
# @option options [
|
|
16
|
+
# @option options [integer] :limit
|
|
17
17
|
# The maximum number of items to return. Must be between 1 - 1000 both inclusive.
|
|
18
18
|
# @option options [Object] :team_id
|
|
19
19
|
# .
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
|
3
|
+
|
|
4
|
+
module Slack
|
|
5
|
+
module Web
|
|
6
|
+
module Api
|
|
7
|
+
module Endpoints
|
|
8
|
+
module AdminAuthPolicy
|
|
9
|
+
#
|
|
10
|
+
# Assign entities to a particular authentication policy.
|
|
11
|
+
#
|
|
12
|
+
# @option options [array] :entity_ids
|
|
13
|
+
# Array of IDs to assign to the policy.
|
|
14
|
+
# @option options [Object] :entity_type
|
|
15
|
+
# The type of entity to assign to the policy. Currently, USER is supported.
|
|
16
|
+
# @option options [string] :policy_name
|
|
17
|
+
# The name of the authentication policy to assign the entities to. Currently, email_password is the only policy that may be used with this method.
|
|
18
|
+
# @see https://api.slack.com/methods/admin.auth.policy.assignEntities
|
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.auth.policy/admin.auth.policy.assignEntities.json
|
|
20
|
+
def admin_auth_policy_assignEntities(options = {})
|
|
21
|
+
throw ArgumentError.new('Required arguments :entity_ids missing') if options[:entity_ids].nil?
|
|
22
|
+
throw ArgumentError.new('Required arguments :entity_type missing') if options[:entity_type].nil?
|
|
23
|
+
throw ArgumentError.new('Required arguments :policy_name missing') if options[:policy_name].nil?
|
|
24
|
+
post('admin.auth.policy.assignEntities', options)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
#
|
|
28
|
+
# Fetch all the entities assigned to a particular authentication policy by name.
|
|
29
|
+
#
|
|
30
|
+
# @option options [string] :policy_name
|
|
31
|
+
# The name of the policy to fetch entities for. Currently, email_password is the only policy that may be used with this method.
|
|
32
|
+
# @option options [string] :cursor
|
|
33
|
+
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
34
|
+
# @option options [Object] :entity_type
|
|
35
|
+
# The type of entity to assign to the policy. Currently, USER is supported.
|
|
36
|
+
# @option options [integer] :limit
|
|
37
|
+
# The maximum number of items to return. Must be between 1 and 1000, both inclusive.
|
|
38
|
+
# @see https://api.slack.com/methods/admin.auth.policy.getEntities
|
|
39
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.auth.policy/admin.auth.policy.getEntities.json
|
|
40
|
+
def admin_auth_policy_getEntities(options = {})
|
|
41
|
+
throw ArgumentError.new('Required arguments :policy_name missing') if options[:policy_name].nil?
|
|
42
|
+
if block_given?
|
|
43
|
+
Pagination::Cursor.new(self, :admin_auth_policy_getEntities, options).each do |page|
|
|
44
|
+
yield page
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
post('admin.auth.policy.getEntities', options)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
#
|
|
52
|
+
# Remove specified entities from a specified authentication policy.
|
|
53
|
+
#
|
|
54
|
+
# @option options [array] :entity_ids
|
|
55
|
+
# Encoded IDs of the entities you'd like to remove from the policy.
|
|
56
|
+
# @option options [Object] :entity_type
|
|
57
|
+
# The type of entity to assign to the policy. Currently, USER is supported.
|
|
58
|
+
# @option options [string] :policy_name
|
|
59
|
+
# The name of the policy to remove entities from. Currently, email_password is the only policy that may be used with this method.
|
|
60
|
+
# @see https://api.slack.com/methods/admin.auth.policy.removeEntities
|
|
61
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.auth.policy/admin.auth.policy.removeEntities.json
|
|
62
|
+
def admin_auth_policy_removeEntities(options = {})
|
|
63
|
+
throw ArgumentError.new('Required arguments :entity_ids missing') if options[:entity_ids].nil?
|
|
64
|
+
throw ArgumentError.new('Required arguments :entity_type missing') if options[:entity_type].nil?
|
|
65
|
+
throw ArgumentError.new('Required arguments :policy_name missing') if options[:policy_name].nil?
|
|
66
|
+
post('admin.auth.policy.removeEntities', options)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
|
3
|
+
|
|
4
|
+
module Slack
|
|
5
|
+
module Web
|
|
6
|
+
module Api
|
|
7
|
+
module Endpoints
|
|
8
|
+
module AdminBarriers
|
|
9
|
+
#
|
|
10
|
+
# Create an Information Barrier
|
|
11
|
+
#
|
|
12
|
+
# @option options [array] :barriered_from_usergroup_ids
|
|
13
|
+
# A list of IDP Groups ids that the primary usergroup is to be barriered from.
|
|
14
|
+
# @option options [Object] :primary_usergroup_id
|
|
15
|
+
# The id of the primary IDP Group.
|
|
16
|
+
# @option options [array] :restricted_subjects
|
|
17
|
+
# What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
|
|
18
|
+
# @see https://api.slack.com/methods/admin.barriers.create
|
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.create.json
|
|
20
|
+
def admin_barriers_create(options = {})
|
|
21
|
+
throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
|
|
22
|
+
throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
|
|
23
|
+
throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
|
|
24
|
+
post('admin.barriers.create', options)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
#
|
|
28
|
+
# Delete an existing Information Barrier
|
|
29
|
+
#
|
|
30
|
+
# @option options [Object] :barrier_id
|
|
31
|
+
# The ID of the barrier you're trying to delete.
|
|
32
|
+
# @see https://api.slack.com/methods/admin.barriers.delete
|
|
33
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.delete.json
|
|
34
|
+
def admin_barriers_delete(options = {})
|
|
35
|
+
throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
|
|
36
|
+
post('admin.barriers.delete', options)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
#
|
|
40
|
+
# Get all Information Barriers for your organization
|
|
41
|
+
#
|
|
42
|
+
# @option options [string] :cursor
|
|
43
|
+
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
44
|
+
# @option options [integer] :limit
|
|
45
|
+
# The maximum number of items to return. Must be between 1 - 1000 both inclusive.
|
|
46
|
+
# @see https://api.slack.com/methods/admin.barriers.list
|
|
47
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.list.json
|
|
48
|
+
def admin_barriers_list(options = {})
|
|
49
|
+
if block_given?
|
|
50
|
+
Pagination::Cursor.new(self, :admin_barriers_list, options).each do |page|
|
|
51
|
+
yield page
|
|
52
|
+
end
|
|
53
|
+
else
|
|
54
|
+
post('admin.barriers.list', options)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
#
|
|
59
|
+
# Update an existing Information Barrier
|
|
60
|
+
#
|
|
61
|
+
# @option options [Object] :barrier_id
|
|
62
|
+
# The ID of the barrier you're trying to modify.
|
|
63
|
+
# @option options [array] :barriered_from_usergroup_ids
|
|
64
|
+
# A list of IDP Groups ids that the primary usergroup is to be barriered from.
|
|
65
|
+
# @option options [Object] :primary_usergroup_id
|
|
66
|
+
# The id of the primary IDP Group.
|
|
67
|
+
# @option options [array] :restricted_subjects
|
|
68
|
+
# What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
|
|
69
|
+
# @see https://api.slack.com/methods/admin.barriers.update
|
|
70
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.update.json
|
|
71
|
+
def admin_barriers_update(options = {})
|
|
72
|
+
throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
|
|
73
|
+
throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
|
|
74
|
+
throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
|
|
75
|
+
throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
|
|
76
|
+
post('admin.barriers.update', options)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|