slack-ruby-client 0.14.2 → 0.15.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/.github/FUNDING.yml +1 -0
- data/.rubocop.yml +23 -7
- data/.rubocop_todo.yml +103 -43
- data/.travis.yml +0 -1
- data/CHANGELOG.md +39 -2
- data/CONTRIBUTING.md +24 -6
- data/Dangerfile +2 -1
- data/Gemfile +10 -3
- data/README.md +90 -30
- data/Rakefile +1 -0
- data/UPGRADING.md +16 -0
- data/bin/commands.rb +24 -0
- data/bin/commands/admin_apps.rb +27 -0
- data/bin/commands/admin_apps_approved.rb +17 -0
- data/bin/commands/admin_apps_requests.rb +16 -0
- data/bin/commands/admin_apps_restricted.rb +17 -0
- data/bin/commands/admin_conversations.rb +17 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
- data/bin/commands/admin_conversations_whitelist.rb +37 -0
- data/bin/commands/admin_emoji.rb +54 -0
- data/bin/commands/admin_inviteRequests.rb +36 -0
- data/bin/commands/admin_inviteRequests_approved.rb +16 -0
- data/bin/commands/admin_inviteRequests_denied.rb +16 -0
- data/bin/commands/admin_teams.rb +27 -0
- data/bin/commands/admin_teams_admins.rb +16 -0
- data/bin/commands/admin_teams_owners.rb +16 -0
- data/bin/commands/admin_teams_settings.rb +64 -0
- data/bin/commands/admin_usergroups.rb +48 -0
- data/bin/commands/admin_users.rb +97 -0
- data/bin/commands/admin_users_session.rb +16 -0
- data/bin/commands/api.rb +3 -2
- data/bin/commands/apps.rb +3 -2
- data/bin/commands/apps_permissions.rb +5 -4
- data/bin/commands/apps_permissions_resources.rb +3 -2
- data/bin/commands/apps_permissions_scopes.rb +3 -2
- data/bin/commands/apps_permissions_users.rb +5 -4
- data/bin/commands/auth.rb +5 -4
- data/bin/commands/bots.rb +3 -2
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +31 -30
- data/bin/commands/chat.rb +36 -32
- data/bin/commands/chat_scheduledMessages.rb +3 -2
- data/bin/commands/conversations.rb +36 -36
- data/bin/commands/dialog.rb +3 -2
- data/bin/commands/dnd.rb +9 -8
- data/bin/commands/emoji.rb +3 -2
- data/bin/commands/files.rb +14 -12
- data/bin/commands/files_comments.rb +3 -2
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +33 -32
- data/bin/commands/im.rb +13 -12
- data/bin/commands/migration.rb +3 -2
- data/bin/commands/mpim.rb +11 -10
- data/bin/commands/oauth.rb +6 -5
- data/bin/commands/oauth_v2.rb +17 -0
- data/bin/commands/pins.rb +7 -8
- data/bin/commands/reactions.rb +10 -11
- data/bin/commands/reminders.rb +11 -10
- data/bin/commands/rtm.rb +5 -4
- data/bin/commands/search.rb +7 -6
- data/bin/commands/stars.rb +7 -6
- data/bin/commands/team.rb +10 -8
- data/bin/commands/team_profile.rb +3 -2
- data/bin/commands/usergroups.rb +11 -10
- data/bin/commands/usergroups_users.rb +5 -4
- data/bin/commands/users.rb +21 -20
- data/bin/commands/users_admin.rb +1 -0
- data/bin/commands/users_prefs.rb +1 -0
- data/bin/commands/users_profile.rb +5 -4
- data/bin/commands/views.rb +48 -0
- data/bin/slack +1 -2
- data/examples/hi_real_time/Gemfile +1 -0
- data/examples/hi_real_time/hi.rb +7 -3
- data/examples/hi_real_time_and_web/Gemfile +1 -0
- data/examples/hi_real_time_and_web/hi.rb +7 -3
- data/examples/hi_real_time_async_async/Gemfile +1 -0
- data/examples/hi_real_time_async_async/hi.rb +6 -2
- data/examples/hi_real_time_async_celluloid/Gemfile +1 -0
- data/examples/hi_real_time_async_celluloid/hi.rb +7 -3
- data/examples/hi_real_time_async_eventmachine/Gemfile +1 -0
- data/examples/hi_real_time_async_eventmachine/hi.rb +7 -3
- data/examples/hi_web/Gemfile +1 -0
- data/examples/hi_web/hi.rb +1 -0
- data/examples/new_ticket/Gemfile +1 -0
- data/examples/new_ticket/new_ticket.rb +1 -0
- data/lib/slack-ruby-client.rb +4 -4
- data/lib/slack.rb +1 -0
- data/lib/slack/config.rb +1 -0
- data/lib/slack/events/config.rb +1 -0
- data/lib/slack/events/request.rb +3 -1
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +1 -0
- data/lib/slack/messages/message.rb +1 -4
- data/lib/slack/real_time/api/message.rb +3 -1
- data/lib/slack/real_time/api/message_id.rb +1 -0
- data/lib/slack/real_time/api/ping.rb +5 -2
- data/lib/slack/real_time/api/typing.rb +3 -1
- data/lib/slack/real_time/client.rb +46 -22
- data/lib/slack/real_time/concurrency.rb +1 -0
- data/lib/slack/real_time/concurrency/async.rb +18 -9
- data/lib/slack/real_time/concurrency/celluloid.rb +10 -4
- data/lib/slack/real_time/concurrency/eventmachine.rb +9 -6
- data/lib/slack/real_time/config.rb +6 -1
- data/lib/slack/real_time/models.rb +1 -0
- data/lib/slack/real_time/models/base.rb +1 -4
- data/lib/slack/real_time/models/bot.rb +1 -0
- data/lib/slack/real_time/models/channel.rb +1 -0
- data/lib/slack/real_time/models/group.rb +1 -0
- data/lib/slack/real_time/models/im.rb +1 -0
- data/lib/slack/real_time/models/team.rb +1 -0
- data/lib/slack/real_time/models/user.rb +1 -0
- data/lib/slack/real_time/socket.rb +16 -13
- data/lib/slack/real_time/stores.rb +1 -0
- data/lib/slack/real_time/stores/base.rb +4 -1
- data/lib/slack/real_time/stores/starter.rb +11 -0
- data/lib/slack/real_time/stores/store.rb +26 -25
- data/lib/slack/version.rb +2 -1
- data/lib/slack/web/api/endpoints.rb +48 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +42 -0
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -0
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
- data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
- data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +28 -0
- data/lib/slack/web/api/endpoints/api.rb +2 -1
- data/lib/slack/web/api/endpoints/apps.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions.rb +3 -2
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +3 -2
- data/lib/slack/web/api/endpoints/auth.rb +3 -2
- data/lib/slack/web/api/endpoints/bots.rb +2 -1
- data/lib/slack/web/api/endpoints/calls.rb +83 -0
- data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
- data/lib/slack/web/api/endpoints/channels.rb +44 -29
- data/lib/slack/web/api/endpoints/chat.rb +38 -31
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -2
- data/lib/slack/web/api/endpoints/conversations.rb +34 -35
- data/lib/slack/web/api/endpoints/dialog.rb +2 -1
- data/lib/slack/web/api/endpoints/dnd.rb +6 -4
- data/lib/slack/web/api/endpoints/emoji.rb +2 -1
- data/lib/slack/web/api/endpoints/files.rb +11 -8
- data/lib/slack/web/api/endpoints/files_comments.rb +2 -1
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +33 -18
- data/lib/slack/web/api/endpoints/im.rb +17 -12
- data/lib/slack/web/api/endpoints/migration.rb +2 -1
- data/lib/slack/web/api/endpoints/mpim.rb +16 -11
- data/lib/slack/web/api/endpoints/oauth.rb +4 -6
- data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
- data/lib/slack/web/api/endpoints/pins.rb +8 -12
- data/lib/slack/web/api/endpoints/reactions.rb +12 -15
- data/lib/slack/web/api/endpoints/reminders.rb +6 -5
- data/lib/slack/web/api/endpoints/rtm.rb +3 -2
- data/lib/slack/web/api/endpoints/search.rb +4 -3
- data/lib/slack/web/api/endpoints/stars.rb +6 -7
- data/lib/slack/web/api/endpoints/team.rb +7 -5
- data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +6 -5
- data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -2
- data/lib/slack/web/api/endpoints/users.rb +11 -12
- data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +3 -2
- data/lib/slack/web/api/endpoints/views.rb +97 -0
- data/lib/slack/web/api/error.rb +1 -0
- data/lib/slack/web/api/errors.rb +656 -0
- data/lib/slack/web/api/errors/slack_error.rb +14 -1
- data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
- data/lib/slack/web/api/mixins.rb +2 -0
- data/lib/slack/web/api/mixins/channels.id.rb +1 -0
- data/lib/slack/web/api/mixins/conversations.id.rb +27 -0
- data/lib/slack/web/api/mixins/groups.id.rb +1 -0
- data/lib/slack/web/api/mixins/ids.id.rb +1 -0
- data/lib/slack/web/api/mixins/users.id.rb +1 -0
- data/lib/slack/web/api/mixins/users.search.rb +1 -0
- data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +29 -26
- data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
- data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
- data/lib/slack/web/api/templates/command.erb +1 -0
- data/lib/slack/web/api/templates/commands.erb +1 -0
- data/lib/slack/web/api/templates/endpoints.erb +1 -0
- data/lib/slack/web/api/templates/errors.erb +20 -0
- data/lib/slack/web/api/templates/method.erb +5 -1
- data/lib/slack/web/api/templates/method_spec.erb +1 -0
- data/lib/slack/web/client.rb +2 -1
- data/lib/slack/web/config.rb +1 -0
- data/lib/slack/web/faraday/connection.rb +24 -20
- data/lib/slack/web/faraday/request.rb +1 -0
- data/lib/slack/web/faraday/response/raise_error.rb +10 -6
- data/lib/slack/web/pagination/cursor.rb +3 -2
- data/lib/slack_ruby_client.rb +1 -0
- data/lib/tasks/git.rake +1 -0
- data/lib/tasks/real_time.rake +13 -5
- data/lib/tasks/update.rake +1 -0
- data/lib/tasks/web.rake +27 -7
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +6 -3
- data/spec/fixtures/slack/web/channels_info.yml +108 -15
- data/spec/fixtures/slack/web/views_open_error.yml +76 -0
- data/spec/integration/integration_spec.rb +26 -23
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +8 -4
- data/spec/slack/events/request_spec.rb +67 -37
- data/spec/slack/messages/formatting_spec.rb +25 -13
- data/spec/slack/real_time/api/message_spec.rb +6 -1
- data/spec/slack/real_time/api/ping_spec.rb +2 -0
- data/spec/slack/real_time/api/typing_spec.rb +5 -1
- data/spec/slack/real_time/client_spec.rb +178 -32
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +11 -6
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +9 -1
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
- data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
- data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
- data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
- data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
- data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
- data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
- data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
- data/spec/slack/real_time/rtm_start_spec.rb +1 -0
- data/spec/slack/real_time/store_spec.rb +2 -1
- data/spec/slack/slack_spec.rb +37 -5
- data/spec/slack/version_spec.rb +2 -1
- data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
- data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
- data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
- data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
- data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
- data/spec/slack/web/api/endpoints/apps_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
- data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/conversations_spec.rb +2 -1
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +80 -25
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
- data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
- data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/files_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/im_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -11
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/pins_spec.rb +5 -1
- data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
- data/spec/slack/web/api/endpoints/reminders_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
- data/spec/slack/web/api/error_spec.rb +4 -2
- data/spec/slack/web/api/errors/service_unavailable_spec.rb +8 -5
- data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
- data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
- data/spec/slack/web/api/mixins/conversations_spec.rb +41 -0
- data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
- data/spec/slack/web/api/mixins/users_spec.rb +17 -8
- data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
- data/spec/slack/web/client_spec.rb +71 -18
- data/spec/slack/web/faraday/response/raise_error_spec.rb +41 -7
- data/spec/spec_helper.rb +2 -1
- data/spec/support/queue_with_timeout.rb +1 -0
- data/spec/support/real_time/concurrency/mock.rb +1 -0
- data/spec/support/real_time/connected_client.rb +9 -3
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +1 -0
- metadata +156 -30
- data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
- data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
- data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
- data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
- data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
- data/screenshots/register-bot.png +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Config
|
|
@@ -44,7 +45,11 @@ module Slack
|
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
|
|
47
|
-
raise
|
|
48
|
+
raise(
|
|
49
|
+
NoConcurrencyError,
|
|
50
|
+
'Missing concurrency. Add async-websocket, faye-websocket ' \
|
|
51
|
+
'or celluloid-io to your Gemfile.'
|
|
52
|
+
)
|
|
48
53
|
end
|
|
49
54
|
end
|
|
50
55
|
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
class Socket
|
|
4
5
|
attr_accessor :url
|
|
5
6
|
attr_accessor :options
|
|
6
7
|
attr_reader :driver
|
|
7
|
-
attr_reader :logger
|
|
8
|
-
protected :logger
|
|
9
8
|
|
|
10
9
|
def initialize(url, options = {})
|
|
11
10
|
@url = url
|
|
12
|
-
@options = options
|
|
11
|
+
@options = options.dup
|
|
13
12
|
@driver = nil
|
|
14
|
-
@logger = options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger
|
|
13
|
+
@logger = @options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger
|
|
15
14
|
@last_message_at = nil
|
|
16
15
|
end
|
|
17
16
|
|
|
@@ -51,9 +50,9 @@ module Slack
|
|
|
51
50
|
|
|
52
51
|
def start_sync(client)
|
|
53
52
|
thread = start_async(client)
|
|
54
|
-
thread
|
|
53
|
+
thread&.join
|
|
55
54
|
rescue Interrupt
|
|
56
|
-
thread
|
|
55
|
+
thread&.exit
|
|
57
56
|
end
|
|
58
57
|
|
|
59
58
|
# @return [#join]
|
|
@@ -76,15 +75,19 @@ module Slack
|
|
|
76
75
|
end
|
|
77
76
|
|
|
78
77
|
def close
|
|
79
|
-
# When you call `driver.emit(:close)`, it will typically end up calling `client.close`
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
# When you call `driver.emit(:close)`, it will typically end up calling `client.close`
|
|
79
|
+
# which will call `@socket.close` and end up back here. In order to break this infinite
|
|
80
|
+
# recursion, we check and set `@driver = nil` before invoking `client.close`.
|
|
81
|
+
return unless (driver = @driver)
|
|
82
|
+
|
|
83
|
+
@driver = nil
|
|
84
|
+
driver.emit(:close)
|
|
84
85
|
end
|
|
85
86
|
|
|
86
87
|
protected
|
|
87
88
|
|
|
89
|
+
attr_reader :logger
|
|
90
|
+
|
|
88
91
|
def addr
|
|
89
92
|
URI(url).host
|
|
90
93
|
end
|
|
@@ -95,9 +98,9 @@ module Slack
|
|
|
95
98
|
|
|
96
99
|
def port
|
|
97
100
|
case (uri = URI(url)).scheme
|
|
98
|
-
when 'wss'
|
|
101
|
+
when 'wss', 'https'
|
|
99
102
|
URI::HTTPS::DEFAULT_PORT
|
|
100
|
-
when 'ws', 'http'
|
|
103
|
+
when 'ws', 'http'
|
|
101
104
|
URI::HTTP::DEFAULT_PORT
|
|
102
105
|
else
|
|
103
106
|
uri.port
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Stores
|
|
@@ -14,6 +15,16 @@ module Slack
|
|
|
14
15
|
|
|
15
16
|
### RealTime Events
|
|
16
17
|
|
|
18
|
+
# An enterprise grid migration has started on an external workspace..
|
|
19
|
+
# @see https://api.slack.com/events/external_org_migration_started
|
|
20
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
21
|
+
# on :external_org_migration_started do |data|
|
|
22
|
+
|
|
23
|
+
# An enterprise grid migration has finished on an external workspace..
|
|
24
|
+
# @see https://api.slack.com/events/external_org_migration_finished
|
|
25
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
|
|
26
|
+
# on :external_org_migration_finished do |data|
|
|
27
|
+
|
|
17
28
|
# A private channel was deleted.
|
|
18
29
|
# @see https://api.slack.com/events/group_deleted
|
|
19
30
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Stores
|
|
@@ -26,44 +27,44 @@ module Slack
|
|
|
26
27
|
@users = {}
|
|
27
28
|
end
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
@users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
|
|
33
|
-
end
|
|
30
|
+
attrs.users&.each do |data|
|
|
31
|
+
user = Models::User.new(data)
|
|
32
|
+
@users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
|
|
34
33
|
end
|
|
35
34
|
|
|
36
35
|
@channels = {}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
@channels[data.id] = Models::Channel.new(data)
|
|
40
|
-
end
|
|
36
|
+
attrs.channels&.each do |data|
|
|
37
|
+
@channels[data.id] = Models::Channel.new(data)
|
|
41
38
|
end
|
|
42
39
|
|
|
43
40
|
@bots = {}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
@bots[data.id] = Models::Bot.new(data)
|
|
47
|
-
end
|
|
41
|
+
attrs.bots&.each do |data|
|
|
42
|
+
@bots[data.id] = Models::Bot.new(data)
|
|
48
43
|
end
|
|
49
44
|
|
|
50
45
|
@groups = {}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
@groups[data.id] = Models::Group.new(data)
|
|
54
|
-
end
|
|
46
|
+
attrs.groups&.each do |data|
|
|
47
|
+
@groups[data.id] = Models::Group.new(data)
|
|
55
48
|
end
|
|
56
49
|
|
|
57
50
|
@ims = {}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
@ims[data.id] = Models::Im.new(data)
|
|
61
|
-
end
|
|
51
|
+
attrs.ims&.each do |data|
|
|
52
|
+
@ims[data.id] = Models::Im.new(data)
|
|
62
53
|
end
|
|
63
54
|
end
|
|
64
55
|
|
|
65
56
|
### RealTime Events
|
|
66
57
|
|
|
58
|
+
# An enterprise grid migration has started on an external workspace..
|
|
59
|
+
# @see https://api.slack.com/events/external_org_migration_started
|
|
60
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
61
|
+
# on :external_org_migration_started do |data|
|
|
62
|
+
|
|
63
|
+
# An enterprise grid migration has finished on an external workspace..
|
|
64
|
+
# @see https://api.slack.com/events/external_org_migration_finished
|
|
65
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
|
|
66
|
+
# on :external_org_migration_finished do |data|
|
|
67
|
+
|
|
67
68
|
# A private channel was deleted.
|
|
68
69
|
# @see https://api.slack.com/events/group_deleted
|
|
69
70
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
|
|
@@ -151,7 +152,7 @@ module Slack
|
|
|
151
152
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
|
|
152
153
|
on :bot_changed do |data|
|
|
153
154
|
bot = bots[data.bot.id]
|
|
154
|
-
bot
|
|
155
|
+
bot&.merge!(data.bot)
|
|
155
156
|
end
|
|
156
157
|
|
|
157
158
|
# A team channel was archived.
|
|
@@ -333,7 +334,7 @@ module Slack
|
|
|
333
334
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
|
|
334
335
|
on :group_left do |data|
|
|
335
336
|
channel = groups[data.channel]
|
|
336
|
-
channel.members.delete(self.self.id) if channel
|
|
337
|
+
channel.members.delete(self.self.id) if channel&.key?(:members)
|
|
337
338
|
end
|
|
338
339
|
|
|
339
340
|
# A private group read marker was updated.
|
|
@@ -368,7 +369,7 @@ module Slack
|
|
|
368
369
|
# @see https://api.slack.com/events/im_close
|
|
369
370
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
|
|
370
371
|
on :im_close do |data|
|
|
371
|
-
return unless ims
|
|
372
|
+
return unless ims&.key?(data.channel)
|
|
372
373
|
|
|
373
374
|
ims[data.channel].is_open = false
|
|
374
375
|
end
|
|
@@ -394,7 +395,7 @@ module Slack
|
|
|
394
395
|
# @see https://api.slack.com/events/im_open
|
|
395
396
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
|
|
396
397
|
on :im_open do |data|
|
|
397
|
-
return unless ims
|
|
398
|
+
return unless ims&.key?(data.channel)
|
|
398
399
|
|
|
399
400
|
ims[data.channel].is_open = true
|
|
400
401
|
end
|
data/lib/slack/version.rb
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
# This file was auto-generated by lib/tasks/web.rake
|
|
2
3
|
|
|
4
|
+
require_relative 'endpoints/admin_apps'
|
|
5
|
+
require_relative 'endpoints/admin_apps_approved'
|
|
6
|
+
require_relative 'endpoints/admin_apps_requests'
|
|
7
|
+
require_relative 'endpoints/admin_apps_restricted'
|
|
8
|
+
require_relative 'endpoints/admin_conversations'
|
|
9
|
+
require_relative 'endpoints/admin_conversations_restrictAccess'
|
|
10
|
+
require_relative 'endpoints/admin_conversations_whitelist'
|
|
11
|
+
require_relative 'endpoints/admin_emoji'
|
|
12
|
+
require_relative 'endpoints/admin_inviteRequests'
|
|
13
|
+
require_relative 'endpoints/admin_inviteRequests_approved'
|
|
14
|
+
require_relative 'endpoints/admin_inviteRequests_denied'
|
|
15
|
+
require_relative 'endpoints/admin_teams'
|
|
16
|
+
require_relative 'endpoints/admin_teams_admins'
|
|
17
|
+
require_relative 'endpoints/admin_teams_owners'
|
|
18
|
+
require_relative 'endpoints/admin_teams_settings'
|
|
19
|
+
require_relative 'endpoints/admin_usergroups'
|
|
20
|
+
require_relative 'endpoints/admin_users'
|
|
21
|
+
require_relative 'endpoints/admin_users_session'
|
|
3
22
|
require_relative 'endpoints/api'
|
|
4
23
|
require_relative 'endpoints/apps'
|
|
5
24
|
require_relative 'endpoints/apps_permissions'
|
|
@@ -8,6 +27,8 @@ require_relative 'endpoints/apps_permissions_scopes'
|
|
|
8
27
|
require_relative 'endpoints/apps_permissions_users'
|
|
9
28
|
require_relative 'endpoints/auth'
|
|
10
29
|
require_relative 'endpoints/bots'
|
|
30
|
+
require_relative 'endpoints/calls'
|
|
31
|
+
require_relative 'endpoints/calls_participants'
|
|
11
32
|
require_relative 'endpoints/channels'
|
|
12
33
|
require_relative 'endpoints/chat'
|
|
13
34
|
require_relative 'endpoints/chat_scheduledMessages'
|
|
@@ -17,11 +38,13 @@ require_relative 'endpoints/dnd'
|
|
|
17
38
|
require_relative 'endpoints/emoji'
|
|
18
39
|
require_relative 'endpoints/files'
|
|
19
40
|
require_relative 'endpoints/files_comments'
|
|
41
|
+
require_relative 'endpoints/files_remote'
|
|
20
42
|
require_relative 'endpoints/groups'
|
|
21
43
|
require_relative 'endpoints/im'
|
|
22
44
|
require_relative 'endpoints/migration'
|
|
23
45
|
require_relative 'endpoints/mpim'
|
|
24
46
|
require_relative 'endpoints/oauth'
|
|
47
|
+
require_relative 'endpoints/oauth_v2'
|
|
25
48
|
require_relative 'endpoints/pins'
|
|
26
49
|
require_relative 'endpoints/reactions'
|
|
27
50
|
require_relative 'endpoints/reminders'
|
|
@@ -36,15 +59,35 @@ require_relative 'endpoints/users'
|
|
|
36
59
|
require_relative 'endpoints/users_admin'
|
|
37
60
|
require_relative 'endpoints/users_prefs'
|
|
38
61
|
require_relative 'endpoints/users_profile'
|
|
62
|
+
require_relative 'endpoints/views'
|
|
39
63
|
|
|
40
64
|
module Slack
|
|
41
65
|
module Web
|
|
42
66
|
module Api
|
|
43
67
|
module Endpoints
|
|
68
|
+
include Slack::Web::Api::Mixins::Conversations
|
|
44
69
|
include Slack::Web::Api::Mixins::Channels
|
|
45
70
|
include Slack::Web::Api::Mixins::Users
|
|
46
71
|
include Slack::Web::Api::Mixins::Groups
|
|
47
72
|
|
|
73
|
+
include AdminApps
|
|
74
|
+
include AdminAppsApproved
|
|
75
|
+
include AdminAppsRequests
|
|
76
|
+
include AdminAppsRestricted
|
|
77
|
+
include AdminConversations
|
|
78
|
+
include AdminConversationsRestrictaccess
|
|
79
|
+
include AdminConversationsWhitelist
|
|
80
|
+
include AdminEmoji
|
|
81
|
+
include AdminInviterequests
|
|
82
|
+
include AdminInviterequestsApproved
|
|
83
|
+
include AdminInviterequestsDenied
|
|
84
|
+
include AdminTeams
|
|
85
|
+
include AdminTeamsAdmins
|
|
86
|
+
include AdminTeamsOwners
|
|
87
|
+
include AdminTeamsSettings
|
|
88
|
+
include AdminUsergroups
|
|
89
|
+
include AdminUsers
|
|
90
|
+
include AdminUsersSession
|
|
48
91
|
include Api
|
|
49
92
|
include Apps
|
|
50
93
|
include AppsPermissions
|
|
@@ -53,6 +96,8 @@ module Slack
|
|
|
53
96
|
include AppsPermissionsUsers
|
|
54
97
|
include Auth
|
|
55
98
|
include Bots
|
|
99
|
+
include Calls
|
|
100
|
+
include CallsParticipants
|
|
56
101
|
include Channels
|
|
57
102
|
include Chat
|
|
58
103
|
include ChatScheduledmessages
|
|
@@ -62,11 +107,13 @@ module Slack
|
|
|
62
107
|
include Emoji
|
|
63
108
|
include Files
|
|
64
109
|
include FilesComments
|
|
110
|
+
include FilesRemote
|
|
65
111
|
include Groups
|
|
66
112
|
include Im
|
|
67
113
|
include Migration
|
|
68
114
|
include Mpim
|
|
69
115
|
include Oauth
|
|
116
|
+
include OauthV2
|
|
70
117
|
include Pins
|
|
71
118
|
include Reactions
|
|
72
119
|
include Reminders
|
|
@@ -81,6 +128,7 @@ module Slack
|
|
|
81
128
|
include UsersAdmin
|
|
82
129
|
include UsersPrefs
|
|
83
130
|
include UsersProfile
|
|
131
|
+
include Views
|
|
84
132
|
end
|
|
85
133
|
end
|
|
86
134
|
end
|
|
@@ -0,0 +1,42 @@
|
|
|
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 AdminApps
|
|
9
|
+
#
|
|
10
|
+
# Approve an app for installation on a workspace.
|
|
11
|
+
#
|
|
12
|
+
# @option options [Object] :app_id
|
|
13
|
+
# The id of the app to approve.
|
|
14
|
+
# @option options [Object] :request_id
|
|
15
|
+
# The id of the request to approve.
|
|
16
|
+
# @option options [Object] :team_id
|
|
17
|
+
# .
|
|
18
|
+
# @see https://api.slack.com/methods/admin.apps.approve
|
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.approve.json
|
|
20
|
+
def admin_apps_approve(options = {})
|
|
21
|
+
post('admin.apps.approve', options)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
#
|
|
25
|
+
# Restrict an app for installation on a workspace.
|
|
26
|
+
#
|
|
27
|
+
# @option options [Object] :app_id
|
|
28
|
+
# The id of the app to restrict.
|
|
29
|
+
# @option options [Object] :request_id
|
|
30
|
+
# The id of the request to restrict.
|
|
31
|
+
# @option options [Object] :team_id
|
|
32
|
+
# .
|
|
33
|
+
# @see https://api.slack.com/methods/admin.apps.restrict
|
|
34
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.restrict.json
|
|
35
|
+
def admin_apps_restrict(options = {})
|
|
36
|
+
post('admin.apps.restrict', options)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|