slack-ruby-client 1.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.github/workflows/integration_test.yml +45 -0
- data/.github/workflows/lint.yml +14 -0
- data/.github/workflows/pr_lint.yml +21 -0
- data/.github/workflows/test.yml +37 -0
- data/.gitignore +4 -3
- data/.rubocop.yml +6 -1
- data/.rubocop_todo.yml +88 -34
- data/.ruby-version +1 -0
- data/CHANGELOG.md +36 -0
- data/CONTRIBUTING.md +6 -5
- data/Gemfile +13 -1
- data/Gemfile.danger +6 -0
- data/README.md +78 -76
- data/RELEASING.md +2 -2
- data/SECURITY.md +9 -0
- data/UPGRADING.md +28 -0
- data/bin/commands/admin_analytics.rb +16 -10
- data/bin/commands/admin_apps.rb +48 -42
- data/bin/commands/admin_apps_approved.rb +17 -11
- data/bin/commands/admin_apps_requests.rb +28 -11
- data/bin/commands/admin_apps_restricted.rb +17 -11
- data/bin/commands/admin_audit_anomaly_allow.rb +29 -0
- data/bin/commands/admin_auth_policy.rb +37 -31
- data/bin/commands/admin_barriers.rb +44 -38
- data/bin/commands/admin_conversations.rb +221 -163
- data/bin/commands/admin_conversations_ekm.rb +17 -11
- data/bin/commands/admin_conversations_restrictAccess.rb +35 -29
- data/bin/commands/admin_emoji.rb +50 -44
- data/bin/commands/admin_inviteRequests.rb +34 -28
- data/bin/commands/admin_inviteRequests_approved.rb +16 -10
- data/bin/commands/admin_inviteRequests_denied.rb +16 -10
- data/bin/commands/admin_roles.rb +46 -0
- data/bin/commands/admin_teams.rb +26 -20
- data/bin/commands/admin_teams_admins.rb +16 -10
- data/bin/commands/admin_teams_owners.rb +16 -10
- data/bin/commands/admin_teams_settings.rb +59 -53
- data/bin/commands/admin_usergroups.rb +45 -39
- data/bin/commands/admin_users.rb +91 -85
- data/bin/commands/admin_users_session.rb +72 -66
- data/bin/commands/admin_users_unsupportedVersions.rb +21 -0
- data/bin/commands/api.rb +14 -8
- data/bin/commands/apps.rb +15 -9
- data/bin/commands/apps_connections.rb +13 -7
- data/bin/commands/apps_event_authorizations.rb +16 -10
- data/bin/commands/apps_manifest.rb +48 -41
- data/bin/commands/auth.rb +21 -15
- data/bin/commands/auth_teams.rb +16 -10
- data/bin/commands/bookmarks.rb +59 -0
- data/bin/commands/bots.rb +15 -9
- data/bin/commands/calls.rb +49 -43
- data/bin/commands/calls_participants.rb +24 -18
- data/bin/commands/chat.rb +150 -141
- data/bin/commands/chat_scheduledMessages.rb +19 -13
- data/bin/commands/conversations.rb +233 -225
- data/bin/commands/dialog.rb +15 -9
- data/bin/commands/dnd.rb +46 -40
- data/bin/commands/emoji.rb +14 -7
- data/bin/commands/files.rb +112 -83
- data/bin/commands/files_comments.rb +15 -9
- data/bin/commands/files_remote.rb +73 -67
- data/bin/commands/functions_workflows_steps.rb +22 -0
- data/bin/commands/functions_workflows_steps_responses.rb +22 -0
- data/bin/commands/migration.rb +16 -10
- data/bin/commands/oauth.rb +18 -12
- data/bin/commands/oauth_v2.rb +28 -22
- data/bin/commands/openid_connect.rb +26 -20
- data/bin/commands/pins.rb +33 -26
- data/bin/commands/reactions.rb +52 -46
- data/bin/commands/reminders.rb +53 -47
- data/bin/commands/rtm.rb +15 -24
- data/bin/commands/search.rb +43 -37
- data/bin/commands/stars.rb +38 -32
- data/bin/commands/team.rb +47 -38
- data/bin/commands/team_billing.rb +13 -7
- data/bin/commands/team_preferences.rb +13 -7
- data/bin/commands/team_profile.rb +14 -8
- data/bin/commands/tooling_tokens.rb +14 -8
- data/bin/commands/usergroups.rb +64 -58
- data/bin/commands/usergroups_users.rb +27 -21
- data/bin/commands/users.rb +111 -105
- data/bin/commands/users_admin.rb +28 -22
- data/bin/commands/users_prefs.rb +13 -7
- data/bin/commands/users_profile.rb +26 -20
- data/bin/commands/views.rb +47 -39
- data/bin/commands/workflows.rb +36 -30
- data/bin/slack +48 -43
- data/lib/slack/real_time/api/message.rb +3 -2
- data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
- data/lib/slack/real_time/api/typing.rb +2 -1
- data/lib/slack/real_time/client.rb +10 -28
- data/lib/slack/real_time/config.rb +3 -3
- data/lib/slack/real_time/models/channel.rb +4 -0
- data/lib/slack/real_time/models/{group.rb → mpim.rb} +1 -1
- data/lib/slack/real_time/models.rb +2 -1
- data/lib/slack/real_time/stores/base.rb +25 -9
- data/lib/slack/real_time/stores/starter.rb +323 -309
- data/lib/slack/real_time/stores/store.rb +265 -198
- data/lib/slack/real_time/stores.rb +1 -7
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints/admin_analytics.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_apps.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +16 -0
- data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_auth_policy.rb +7 -7
- data/lib/slack/web/api/endpoints/admin_barriers.rb +8 -8
- data/lib/slack/web/api/endpoints/admin_conversations.rb +110 -28
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +6 -6
- data/lib/slack/web/api/endpoints/admin_emoji.rb +9 -9
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_roles.rb +73 -0
- data/lib/slack/web/api/endpoints/admin_teams.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +1 -1
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +1 -1
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +11 -11
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +7 -7
- data/lib/slack/web/api/endpoints/admin_users.rb +16 -16
- data/lib/slack/web/api/endpoints/admin_users_session.rb +8 -8
- data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
- data/lib/slack/web/api/endpoints/apps.rb +2 -2
- data/lib/slack/web/api/endpoints/apps_connections.rb +1 -1
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +1 -1
- data/lib/slack/web/api/endpoints/apps_manifest.rb +8 -6
- data/lib/slack/web/api/endpoints/bookmarks.rb +88 -0
- data/lib/slack/web/api/endpoints/bots.rb +1 -1
- data/lib/slack/web/api/endpoints/calls.rb +5 -5
- data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
- data/lib/slack/web/api/endpoints/chat.rb +37 -31
- data/lib/slack/web/api/endpoints/conversations.rb +38 -34
- data/lib/slack/web/api/endpoints/dialog.rb +2 -2
- data/lib/slack/web/api/endpoints/dnd.rb +1 -1
- data/lib/slack/web/api/endpoints/emoji.rb +2 -0
- data/lib/slack/web/api/endpoints/files.rb +45 -10
- data/lib/slack/web/api/endpoints/files_comments.rb +2 -2
- data/lib/slack/web/api/endpoints/files_remote.rb +8 -8
- data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +28 -0
- data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +28 -0
- data/lib/slack/web/api/endpoints/migration.rb +1 -1
- data/lib/slack/web/api/endpoints/oauth_v2.rb +2 -2
- data/lib/slack/web/api/endpoints/pins.rb +5 -3
- data/lib/slack/web/api/endpoints/reactions.rb +4 -4
- data/lib/slack/web/api/endpoints/reminders.rb +5 -5
- data/lib/slack/web/api/endpoints/rtm.rb +0 -23
- data/lib/slack/web/api/endpoints/search.rb +3 -3
- data/lib/slack/web/api/endpoints/team.rb +13 -1
- data/lib/slack/web/api/endpoints/tooling_tokens.rb +1 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +5 -5
- data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -3
- data/lib/slack/web/api/endpoints/users.rb +4 -4
- data/lib/slack/web/api/endpoints/users_admin.rb +2 -2
- data/lib/slack/web/api/endpoints/users_profile.rb +1 -1
- data/lib/slack/web/api/endpoints/views.rb +16 -11
- data/lib/slack/web/api/endpoints/workflows.rb +4 -4
- data/lib/slack/web/api/endpoints.rb +12 -0
- data/lib/slack/web/api/errors.rb +146 -8
- data/lib/slack/web/api/mixins/conversations.id.rb +1 -1
- data/lib/slack/web/api/mixins/users.id.rb +1 -1
- data/lib/slack/web/api/mixins/users.search.rb +2 -1
- data/lib/slack/web/api/patches/{chat.1.patch → chat.attachments-blocks.patch} +13 -14
- data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
- data/lib/slack/web/api/patches/views.view-json.patch +55 -0
- data/lib/slack/web/api/templates/command.erb +18 -12
- data/lib/slack/web/api/templates/method.erb +1 -1
- data/lib/slack/web/config.rb +2 -2
- data/lib/slack/web/faraday/connection.rb +4 -4
- data/lib/slack/web/faraday/request.rb +2 -0
- data/lib/slack/web/faraday/response/raise_error.rb +2 -10
- data/lib/slack/web/faraday/response/wrap_error.rb +1 -1
- data/lib/slack-ruby-client.rb +2 -1
- data/lib/tasks/real_time.rake +44 -24
- data/lib/tasks/web.rake +9 -8
- data/slack-ruby-client.gemspec +5 -14
- data/spec/fixtures/slack/web/rtm_connect.yml +85 -1
- data/spec/integration/integration_spec.rb +1 -1
- data/spec/slack/events/config_spec.rb +2 -0
- data/spec/slack/events/request_spec.rb +5 -1
- data/spec/slack/messages/formatting_spec.rb +10 -0
- data/spec/slack/real_time/api/message_spec.rb +1 -1
- data/spec/slack/real_time/api/ping_spec.rb +1 -1
- data/spec/slack/real_time/api/typing_spec.rb +1 -1
- data/spec/slack/real_time/client_spec.rb +91 -127
- data/spec/slack/real_time/event_handlers/bot_spec.rb +19 -17
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +1 -1
- data/spec/slack/real_time/event_handlers/im_spec.rb +30 -27
- data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +35 -27
- data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +27 -23
- data/spec/slack/real_time/event_handlers/team_spec.rb +7 -8
- data/spec/slack/real_time/event_handlers/user_spec.rb +6 -5
- data/spec/slack/real_time/stores/store_spec.rb +50 -0
- data/spec/slack/slack_spec.rb +5 -4
- data/spec/slack/version_spec.rb +1 -1
- data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +5 -0
- data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +31 -0
- data/spec/slack/web/api/endpoints/admin_roles_spec.rb +30 -0
- data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +45 -17
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +6 -2
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +33 -16
- data/spec/slack/web/api/endpoints/files_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/functions_workflows_steps_responses_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/functions_workflows_steps_spec.rb +13 -0
- data/spec/slack/web/api/mixins/conversations_spec.rb +2 -0
- data/spec/slack/web/api/mixins/users_spec.rb +2 -0
- data/spec/slack/web/api/pagination/cursor_spec.rb +11 -7
- data/spec/slack/web/client_spec.rb +39 -11
- data/spec/slack/web/faraday/response/raise_error_spec.rb +1 -1
- data/spec/support/real_time/connected_client.rb +1 -1
- data/spec/support/real_time/loaded_client.rb +120 -0
- metadata +45 -197
- data/.travis.yml +0 -29
- data/bin/commands/admin_conversations_whitelist.rb +0 -37
- data/bin/commands/apps_permissions.rb +0 -23
- data/bin/commands/apps_permissions_resources.rb +0 -15
- data/bin/commands/apps_permissions_scopes.rb +0 -13
- data/bin/commands/apps_permissions_users.rb +0 -26
- data/bin/commands/channels.rb +0 -23
- data/bin/commands/groups.rb +0 -14
- data/bin/commands/im.rb +0 -6
- data/bin/commands/mpim.rb +0 -6
- data/bin/commands.rb +0 -66
- data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +0 -64
- data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -36
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -31
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -21
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -50
- data/lib/slack/web/api/endpoints/channels.rb +0 -25
- data/lib/slack/web/api/endpoints/groups.rb +0 -13
- data/lib/slack/web/api/endpoints/im.rb +0 -13
- data/lib/slack/web/api/endpoints/mpim.rb +0 -13
- data/lib/slack/web/api/endpoints/presence.rb +0 -23
- data/lib/slack/web/api/patches/views.1.view-json.patch +0 -40
- data/lib/slack/web/api/patches/views.1.views-published.patch +0 -16
- data/lib/slack/web/api/templates/commands.erb +0 -6
- data/spec/fixtures/slack/web/rtm_start.yml +0 -815
- data/spec/slack/real_time/rtm_start_spec.rb +0 -14
- data/spec/slack/real_time/store_spec.rb +0 -12
|
@@ -1,158 +1,76 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
2
3
|
module Slack
|
|
3
4
|
module RealTime
|
|
4
5
|
module Stores
|
|
5
|
-
#
|
|
6
|
+
# Full store with initialization logic
|
|
6
7
|
class Store < Base
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
CONVERSATION_TYPES = {
|
|
9
|
+
public_channels: 'public_channel',
|
|
10
|
+
private_channels: 'private_channel',
|
|
11
|
+
ims: 'im',
|
|
12
|
+
mpims: 'mpim'
|
|
13
|
+
}.freeze
|
|
14
|
+
|
|
15
|
+
attr_reader :caches
|
|
16
|
+
|
|
17
|
+
def initialize(attrs, options = {})
|
|
18
|
+
@teams = {}
|
|
19
|
+
@users = {}
|
|
20
|
+
@bots = {}
|
|
21
|
+
@public_channels = {}
|
|
22
|
+
@private_channels = {}
|
|
23
|
+
@ims = {}
|
|
24
|
+
@mpims = {}
|
|
14
25
|
|
|
15
|
-
def initialize(attrs)
|
|
16
26
|
if attrs.team
|
|
17
27
|
@team_id = attrs.team.id
|
|
18
|
-
@teams
|
|
19
|
-
else
|
|
20
|
-
@teams = {}
|
|
28
|
+
@teams[@team_id] = Models::Team.new(attrs.team)
|
|
21
29
|
end
|
|
22
30
|
|
|
23
31
|
if attrs.self
|
|
24
32
|
@self_id = attrs.self.id
|
|
25
|
-
@users
|
|
26
|
-
else
|
|
27
|
-
@users = {}
|
|
33
|
+
@users[@self_id] = Models::User.new(attrs.self)
|
|
28
34
|
end
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
@channels = {}
|
|
36
|
-
attrs.channels&.each do |data|
|
|
37
|
-
@channels[data.id] = Models::Channel.new(data)
|
|
38
|
-
end
|
|
36
|
+
@caches =
|
|
37
|
+
if options[:caches].is_a?(Array) || options[:caches].nil?
|
|
38
|
+
caches = options[:caches].to_a.map(&:to_sym)
|
|
39
|
+
unknown_caches = caches - CACHES
|
|
40
|
+
raise ArgumentError, "Unknown caches: #{unknown_caches.join(', ')}" unless unknown_caches.empty?
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
Set.new(caches).freeze
|
|
43
|
+
elsif options[:caches] == :all
|
|
44
|
+
Set.new(CACHES).freeze
|
|
45
|
+
else
|
|
46
|
+
raise ArgumentError, 'Unexpected value for option `caches`. Expects :all or an array of caches'
|
|
47
|
+
end
|
|
48
|
+
end
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
end
|
|
50
|
+
def self
|
|
51
|
+
users[@self_id]
|
|
52
|
+
end
|
|
49
53
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
@ims[data.id] = Models::Im.new(data)
|
|
53
|
-
end
|
|
54
|
+
def team
|
|
55
|
+
teams[@team_id]
|
|
54
56
|
end
|
|
55
57
|
|
|
56
58
|
### RealTime Events
|
|
57
59
|
|
|
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
|
-
|
|
63
|
-
# An enterprise grid migration has started on an external workspace..
|
|
64
|
-
# @see https://api.slack.com/events/external_org_migration_started
|
|
65
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
66
|
-
# on :external_org_migration_started do |data|
|
|
67
|
-
|
|
68
|
-
# An enterprise grid migration has finished on an external workspace..
|
|
69
|
-
# @see https://api.slack.com/events/external_org_migration_finished
|
|
70
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
|
|
71
|
-
# on :external_org_migration_finished do |data|
|
|
72
|
-
|
|
73
|
-
# A private channel was deleted.
|
|
74
|
-
# @see https://api.slack.com/events/group_deleted
|
|
75
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
|
|
76
|
-
# on :group_deleted do |data|
|
|
77
|
-
|
|
78
|
-
# Determine the current presence status for a list of users.
|
|
79
|
-
# @see https://api.slack.com/events/presence_query
|
|
80
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_query.json
|
|
81
|
-
# on :presence_query do |data|
|
|
82
|
-
|
|
83
|
-
# The membership of an existing User Group has changed.
|
|
84
|
-
# @see https://api.slack.com/events/subteam_members_changed
|
|
85
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_members_changed.json
|
|
86
|
-
# on :subteam_members_changed do |data|
|
|
87
|
-
|
|
88
|
-
# Subscribe to presence events for the specified users.
|
|
89
|
-
# @see https://api.slack.com/events/presence_sub
|
|
90
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_sub.json
|
|
91
|
-
# on :presence_sub do |data|
|
|
92
|
-
|
|
93
|
-
# A user left a public or private channel.
|
|
94
|
-
# @see https://api.slack.com/events/member_left_channel
|
|
95
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_left_channel.json
|
|
96
|
-
# on :member_left_channel do |data|
|
|
97
|
-
|
|
98
|
-
# A user joined a public or private channel.
|
|
99
|
-
# @see https://api.slack.com/events/member_joined_channel
|
|
100
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_joined_channel.json
|
|
101
|
-
# on :member_joined_channel do |data|
|
|
102
|
-
|
|
103
|
-
# The server intends to close the connection soon..
|
|
104
|
-
# @see https://api.slack.com/events/goodbye
|
|
105
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/goodbye.json
|
|
106
|
-
# on :goodbye do |data|
|
|
107
|
-
|
|
108
|
-
# Verifies ownership of an Events API Request URL.
|
|
109
|
-
# @see https://api.slack.com/events/url_verification
|
|
110
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/url_verification.json
|
|
111
|
-
# on :url_verification do |data|
|
|
112
|
-
|
|
113
|
-
# A message was posted in a multiparty direct message channel.
|
|
114
|
-
# @see https://api.slack.com/events/message.mpim
|
|
115
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.mpim.json
|
|
116
|
-
# on :message.mpim do |data|
|
|
117
|
-
|
|
118
|
-
# A message was posted in a direct message channel.
|
|
119
|
-
# @see https://api.slack.com/events/message.im
|
|
120
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.im.json
|
|
121
|
-
# on :message.im do |data|
|
|
122
|
-
|
|
123
|
-
# A message was posted to a private channel.
|
|
124
|
-
# @see https://api.slack.com/events/message.groups
|
|
125
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.groups.json
|
|
126
|
-
# on :message.groups do |data|
|
|
127
|
-
|
|
128
|
-
# A message was posted to a channel.
|
|
129
|
-
# @see https://api.slack.com/events/message.channels
|
|
130
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.channels.json
|
|
131
|
-
# on :message.channels do |data|
|
|
132
|
-
|
|
133
|
-
# A direct message read marker was updated.
|
|
134
|
-
# @see https://api.slack.com/events/im_marked
|
|
135
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
|
|
136
|
-
# on :im_marked do |data|
|
|
137
|
-
|
|
138
|
-
# Bulk updates were made to a DM channel's history.
|
|
139
|
-
# @see https://api.slack.com/events/im_history_changed
|
|
140
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
|
|
141
|
-
# on :im_history_changed do |data|
|
|
142
|
-
|
|
143
60
|
# The list of accounts a user is signed into has changed.
|
|
144
61
|
# @see https://api.slack.com/events/accounts_changed
|
|
145
62
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/accounts_changed.json
|
|
146
63
|
# on :accounts_changed do |data|
|
|
147
64
|
|
|
148
|
-
#
|
|
65
|
+
# A bot user was added.
|
|
149
66
|
# @see https://api.slack.com/events/bot_added
|
|
150
67
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_added.json
|
|
151
68
|
on :bot_added do |data|
|
|
152
|
-
|
|
69
|
+
bot = Models::Bot.new(data.bot)
|
|
70
|
+
bots[bot.id] = bot
|
|
153
71
|
end
|
|
154
72
|
|
|
155
|
-
#
|
|
73
|
+
# A bot user was changed.
|
|
156
74
|
# @see https://api.slack.com/events/bot_changed
|
|
157
75
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
|
|
158
76
|
on :bot_changed do |data|
|
|
@@ -160,27 +78,27 @@ module Slack
|
|
|
160
78
|
bot&.merge!(data.bot)
|
|
161
79
|
end
|
|
162
80
|
|
|
163
|
-
# A
|
|
81
|
+
# A channel was archived.
|
|
164
82
|
# @see https://api.slack.com/events/channel_archive
|
|
165
83
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_archive.json
|
|
166
84
|
on :channel_archive do |data|
|
|
167
|
-
channel =
|
|
85
|
+
channel = public_channels[data.channel]
|
|
168
86
|
channel.is_archived = true if channel
|
|
169
87
|
end
|
|
170
88
|
|
|
171
|
-
# A
|
|
89
|
+
# A channel was created.
|
|
172
90
|
# @see https://api.slack.com/events/channel_created
|
|
173
91
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_created.json
|
|
174
92
|
on :channel_created do |data|
|
|
175
93
|
channel = Models::Channel.new(data.channel)
|
|
176
|
-
|
|
94
|
+
public_channels[channel.id] = channel
|
|
177
95
|
end
|
|
178
96
|
|
|
179
|
-
# A
|
|
97
|
+
# A channel was deleted.
|
|
180
98
|
# @see https://api.slack.com/events/channel_deleted
|
|
181
99
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_deleted.json
|
|
182
100
|
on :channel_deleted do |data|
|
|
183
|
-
|
|
101
|
+
public_channels.delete(data.channel)
|
|
184
102
|
end
|
|
185
103
|
|
|
186
104
|
# Bulk updates were made to a channel's history.
|
|
@@ -193,11 +111,20 @@ module Slack
|
|
|
193
111
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_joined.json
|
|
194
112
|
on :channel_joined do |data|
|
|
195
113
|
channel_id = data.channel.id
|
|
196
|
-
channel
|
|
197
|
-
|
|
198
|
-
channel
|
|
114
|
+
if data.channel.is_private?
|
|
115
|
+
channel = private_channels[channel_id]
|
|
116
|
+
if channel
|
|
117
|
+
channel.merge!(data.channel)
|
|
118
|
+
else
|
|
119
|
+
private_channels[channel_id] = Models::Channel.new(data.channel)
|
|
120
|
+
end
|
|
199
121
|
else
|
|
200
|
-
|
|
122
|
+
channel = public_channels[channel_id]
|
|
123
|
+
if channel
|
|
124
|
+
channel.merge!(data.channel)
|
|
125
|
+
else
|
|
126
|
+
public_channels[channel_id] = Models::Channel.new(data.channel)
|
|
127
|
+
end
|
|
201
128
|
end
|
|
202
129
|
end
|
|
203
130
|
|
|
@@ -205,8 +132,8 @@ module Slack
|
|
|
205
132
|
# @see https://api.slack.com/events/channel_left
|
|
206
133
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_left.json
|
|
207
134
|
on :channel_left do |data|
|
|
208
|
-
channel =
|
|
209
|
-
channel
|
|
135
|
+
channel = public_channels[data.channel]
|
|
136
|
+
channel&.members&.delete(self.self.id)
|
|
210
137
|
end
|
|
211
138
|
|
|
212
139
|
# Your channel read marker was updated.
|
|
@@ -214,23 +141,23 @@ module Slack
|
|
|
214
141
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_marked.json
|
|
215
142
|
# on :channel_marked do |data|
|
|
216
143
|
|
|
217
|
-
# A
|
|
144
|
+
# A channel was renamed.
|
|
218
145
|
# @see https://api.slack.com/events/channel_rename
|
|
219
146
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_rename.json
|
|
220
147
|
on :channel_rename do |data|
|
|
221
|
-
channel =
|
|
222
|
-
channel
|
|
148
|
+
channel = public_channels[data.channel.id]
|
|
149
|
+
channel&.merge!(data.channel)
|
|
223
150
|
end
|
|
224
151
|
|
|
225
|
-
# A
|
|
152
|
+
# A channel was unarchived.
|
|
226
153
|
# @see https://api.slack.com/events/channel_unarchive
|
|
227
154
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_unarchive.json
|
|
228
155
|
on :channel_unarchive do |data|
|
|
229
|
-
channel =
|
|
156
|
+
channel = public_channels[data.channel]
|
|
230
157
|
channel.is_archived = false if channel
|
|
231
158
|
end
|
|
232
159
|
|
|
233
|
-
# A
|
|
160
|
+
# A slash command has been added or changed.
|
|
234
161
|
# @see https://api.slack.com/events/commands_changed
|
|
235
162
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/commands_changed.json
|
|
236
163
|
# on :commands_changed do |data|
|
|
@@ -238,25 +165,40 @@ module Slack
|
|
|
238
165
|
# Do not Disturb settings changed for the current user.
|
|
239
166
|
# @see https://api.slack.com/events/dnd_updated
|
|
240
167
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated.json
|
|
241
|
-
|
|
168
|
+
on :dnd_updated do |data|
|
|
169
|
+
self.dnd_status = data.dnd_status
|
|
170
|
+
end
|
|
242
171
|
|
|
243
|
-
# Do not Disturb settings changed for a
|
|
172
|
+
# Do not Disturb settings changed for a member.
|
|
244
173
|
# @see https://api.slack.com/events/dnd_updated_user
|
|
245
174
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated_user.json
|
|
246
|
-
|
|
175
|
+
on :dnd_updated_user do |data|
|
|
176
|
+
user = users[data.user]
|
|
177
|
+
user.dnd_status = data.dnd_status if user
|
|
178
|
+
end
|
|
247
179
|
|
|
248
|
-
# The
|
|
180
|
+
# The workspace email domain has changed.
|
|
249
181
|
# @see https://api.slack.com/events/email_domain_changed
|
|
250
182
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/email_domain_changed.json
|
|
251
183
|
on :email_domain_changed do |data|
|
|
252
184
|
team.email_domain = data.email_domain
|
|
253
185
|
end
|
|
254
186
|
|
|
255
|
-
# A
|
|
187
|
+
# A custom emoji has been added or changed.
|
|
256
188
|
# @see https://api.slack.com/events/emoji_changed
|
|
257
189
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/emoji_changed.json
|
|
258
190
|
# on :emoji_changed do |data|
|
|
259
191
|
|
|
192
|
+
# An enterprise grid migration has finished on an external workspace..
|
|
193
|
+
# @see https://api.slack.com/events/external_org_migration_finished
|
|
194
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
|
|
195
|
+
# on :external_org_migration_finished do |data|
|
|
196
|
+
|
|
197
|
+
# An enterprise grid migration has started on an external workspace..
|
|
198
|
+
# @see https://api.slack.com/events/external_org_migration_started
|
|
199
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
200
|
+
# on :external_org_migration_started do |data|
|
|
201
|
+
|
|
260
202
|
# A file was changed.
|
|
261
203
|
# @see https://api.slack.com/events/file_change
|
|
262
204
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_change.json
|
|
@@ -265,7 +207,7 @@ module Slack
|
|
|
265
207
|
# A file comment was added.
|
|
266
208
|
# @see https://api.slack.com/events/file_comment_added
|
|
267
209
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_added.json
|
|
268
|
-
# on :file_comment_added do |data|
|
|
210
|
+
# on :file_comment_added do |data|
|
|
269
211
|
|
|
270
212
|
# A file comment was deleted.
|
|
271
213
|
# @see https://api.slack.com/events/file_comment_deleted
|
|
@@ -287,11 +229,6 @@ module Slack
|
|
|
287
229
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_deleted.json
|
|
288
230
|
# on :file_deleted do |data|
|
|
289
231
|
|
|
290
|
-
# A file was made private.
|
|
291
|
-
# @see https://api.slack.com/events/file_private
|
|
292
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_private.json
|
|
293
|
-
# on :file_private do |data|
|
|
294
|
-
|
|
295
232
|
# A file was made public.
|
|
296
233
|
# @see https://api.slack.com/events/file_public
|
|
297
234
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_public.json
|
|
@@ -307,70 +244,140 @@ module Slack
|
|
|
307
244
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_unshared.json
|
|
308
245
|
# on :file_unshared do |data|
|
|
309
246
|
|
|
310
|
-
#
|
|
247
|
+
# The server intends to close the connection soon..
|
|
248
|
+
# @see https://api.slack.com/events/goodbye
|
|
249
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/goodbye.json
|
|
250
|
+
# on :goodbye do |data|
|
|
251
|
+
|
|
252
|
+
# A private channel was archived.
|
|
311
253
|
# @see https://api.slack.com/events/group_archive
|
|
312
254
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_archive.json
|
|
313
255
|
on :group_archive do |data|
|
|
314
|
-
channel =
|
|
256
|
+
channel = private_channels[data.channel]
|
|
315
257
|
channel.is_archived = true if channel
|
|
316
258
|
end
|
|
317
259
|
|
|
318
|
-
# You closed a
|
|
260
|
+
# You closed a private channel.
|
|
319
261
|
# @see https://api.slack.com/events/group_close
|
|
320
262
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_close.json
|
|
321
263
|
on :group_close do |data|
|
|
322
|
-
|
|
264
|
+
channel = private_channels[data.channel]
|
|
265
|
+
channel.is_open = false if channel
|
|
323
266
|
end
|
|
324
267
|
|
|
325
|
-
#
|
|
268
|
+
# A private channel was deleted.
|
|
269
|
+
# @see https://api.slack.com/events/group_deleted
|
|
270
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
|
|
271
|
+
on :group_deleted do |data|
|
|
272
|
+
private_channels.delete(data.channel)
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
# Bulk updates were made to a private channel's history.
|
|
326
276
|
# @see https://api.slack.com/events/group_history_changed
|
|
327
277
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_history_changed.json
|
|
328
278
|
# on :group_history_changed do |data|
|
|
329
279
|
|
|
330
|
-
# You joined a private
|
|
280
|
+
# You joined a private channel.
|
|
331
281
|
# @see https://api.slack.com/events/group_joined
|
|
332
282
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_joined.json
|
|
333
283
|
on :group_joined do |data|
|
|
334
|
-
|
|
284
|
+
channel = Models::Channel.new(data.channel)
|
|
285
|
+
private_channels[channel.id] = channel
|
|
335
286
|
end
|
|
336
287
|
|
|
337
|
-
# You left a private
|
|
288
|
+
# You left a private channel.
|
|
338
289
|
# @see https://api.slack.com/events/group_left
|
|
339
290
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
|
|
340
291
|
on :group_left do |data|
|
|
341
|
-
channel
|
|
342
|
-
|
|
292
|
+
# Deleting because we can't access a private channel when we're not a member
|
|
293
|
+
private_channels.delete(data.channel)
|
|
343
294
|
end
|
|
344
295
|
|
|
345
|
-
# A private
|
|
296
|
+
# A private channel read marker was updated.
|
|
346
297
|
# @see https://api.slack.com/events/group_marked
|
|
347
298
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_marked.json
|
|
348
299
|
# on :group_marked do |data|
|
|
349
300
|
|
|
350
|
-
# You
|
|
301
|
+
# You created a group DM.
|
|
351
302
|
# @see https://api.slack.com/events/group_open
|
|
352
303
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_open.json
|
|
353
304
|
on :group_open do |data|
|
|
354
|
-
|
|
305
|
+
channel = private_channels[data.channel]
|
|
306
|
+
channel.is_open = true if channel
|
|
355
307
|
end
|
|
356
308
|
|
|
357
|
-
# A private
|
|
309
|
+
# A private channel was renamed.
|
|
358
310
|
# @see https://api.slack.com/events/group_rename
|
|
359
311
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_rename.json
|
|
360
312
|
on :group_rename do |data|
|
|
361
|
-
channel =
|
|
362
|
-
channel
|
|
313
|
+
channel = private_channels[data.channel.id]
|
|
314
|
+
channel&.merge!(data.channel)
|
|
363
315
|
end
|
|
364
316
|
|
|
365
|
-
# A private
|
|
317
|
+
# A private channel was unarchived.
|
|
366
318
|
# @see https://api.slack.com/events/group_unarchive
|
|
367
319
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_unarchive.json
|
|
368
320
|
on :group_unarchive do |data|
|
|
369
|
-
channel =
|
|
321
|
+
channel = private_channels[data.channel]
|
|
370
322
|
channel.is_archived = false if channel
|
|
371
323
|
end
|
|
372
324
|
|
|
373
|
-
#
|
|
325
|
+
# The client has successfully connected to the server.
|
|
326
|
+
# @see https://api.slack.com/events/hello
|
|
327
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/hello.json
|
|
328
|
+
on :hello do |_data, client|
|
|
329
|
+
# rubocop:disable Metrics/BlockNesting
|
|
330
|
+
if caches.include?(:teams)
|
|
331
|
+
team_info = client.web_client.team_info
|
|
332
|
+
team = Models::Team.new(team_info.team)
|
|
333
|
+
teams[team.id] = teams.key?(team.id) ? teams[team.id].merge(team) : team
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
if caches.include?(:users) || caches.include?(:bots)
|
|
337
|
+
client.web_client.users_list do |users_list|
|
|
338
|
+
users_list.members.each do |user_data|
|
|
339
|
+
if caches.include?(:users)
|
|
340
|
+
user = Models::User.new(user_data)
|
|
341
|
+
users[user.id] = users.key?(user.id) ? users[user.id].merge(user) : user
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
next unless user_data.is_bot? && caches.include?(:bots)
|
|
345
|
+
|
|
346
|
+
bot_info = client.web_client.bots_info(bot: user_data.profile.bot_id)
|
|
347
|
+
bot = Models::Bot.new(bot_info.bot)
|
|
348
|
+
bots[bot.id] = bots.key?(bot.id) ? bots[bot.id].merge(bot) : bot
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
if caches.include?(:public_channels) || caches.include?(:private_channels) ||
|
|
354
|
+
caches.include?(:ims) || caches.include?(:mpims)
|
|
355
|
+
types = CONVERSATION_TYPES.slice(*caches).values.join(',')
|
|
356
|
+
client.web_client.conversations_list(types: types) do |conversations|
|
|
357
|
+
conversations.channels.each do |channel_data|
|
|
358
|
+
if channel_data.is_mpim?
|
|
359
|
+
mpim = Models::Mpim.new(channel_data)
|
|
360
|
+
mpims[mpim.id] = mpims.key?(mpim.id) ? mpims[mpim.id].merge(mpim) : mpim
|
|
361
|
+
elsif channel_data.is_im?
|
|
362
|
+
im = Models::Im.new(channel_data)
|
|
363
|
+
ims[im.id] = ims.key?(im.id) ? ims[im.id].merge(im) : im
|
|
364
|
+
elsif channel_data.is_channel? || channel_data.is_group?
|
|
365
|
+
channel = Models::Channel.new(channel_data)
|
|
366
|
+
if channel.is_private?
|
|
367
|
+
private_channels[channel.id] =
|
|
368
|
+
private_channels.key?(channel.id) ? private_channels[channel.id].merge(channel) : channel
|
|
369
|
+
else
|
|
370
|
+
public_channels[channel.id] =
|
|
371
|
+
public_channels.key?(channel.id) ? public_channels[channel.id].merge(channel) : channel
|
|
372
|
+
end
|
|
373
|
+
end
|
|
374
|
+
end
|
|
375
|
+
end
|
|
376
|
+
end
|
|
377
|
+
# rubocop:enable Metrics/BlockNesting
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
# You closed a DM.
|
|
374
381
|
# @see https://api.slack.com/events/im_close
|
|
375
382
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
|
|
376
383
|
on :im_close do |data|
|
|
@@ -379,14 +386,15 @@ module Slack
|
|
|
379
386
|
ims[data.channel].is_open = false
|
|
380
387
|
end
|
|
381
388
|
|
|
382
|
-
# A
|
|
389
|
+
# A DM was created.
|
|
383
390
|
# @see https://api.slack.com/events/im_created
|
|
384
391
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_created.json
|
|
385
392
|
on :im_created do |data|
|
|
386
|
-
|
|
393
|
+
im = Models::Im.new(data.channel)
|
|
394
|
+
ims[im.id] = im
|
|
387
395
|
end
|
|
388
396
|
|
|
389
|
-
# Bulk updates were made to a DM
|
|
397
|
+
# Bulk updates were made to a DM's history.
|
|
390
398
|
# @see https://api.slack.com/events/im_history_changed
|
|
391
399
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
|
|
392
400
|
# on :im_history_changed do |data|
|
|
@@ -396,7 +404,7 @@ module Slack
|
|
|
396
404
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
|
|
397
405
|
# on :im_marked do |data|
|
|
398
406
|
|
|
399
|
-
# You opened a
|
|
407
|
+
# You opened a DM.
|
|
400
408
|
# @see https://api.slack.com/events/im_open
|
|
401
409
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
|
|
402
410
|
on :im_open do |data|
|
|
@@ -412,6 +420,25 @@ module Slack
|
|
|
412
420
|
self.self.presence = data.presence
|
|
413
421
|
end
|
|
414
422
|
|
|
423
|
+
# A user joined a public channel, private channel or MPDM..
|
|
424
|
+
# @see https://api.slack.com/events/member_joined_channel
|
|
425
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_joined_channel.json
|
|
426
|
+
on :member_joined_channel do |data|
|
|
427
|
+
channel = public_channels[data.channel] || private_channels[data.channel]
|
|
428
|
+
if channel
|
|
429
|
+
channel.members ||= Set.new
|
|
430
|
+
channel.members << data.user
|
|
431
|
+
end
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
# A user left a public or private channel.
|
|
435
|
+
# @see https://api.slack.com/events/member_left_channel
|
|
436
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_left_channel.json
|
|
437
|
+
on :member_left_channel do |data|
|
|
438
|
+
channel = public_channels[data.channel] || private_channels[data.channel]
|
|
439
|
+
channel&.members&.delete(data.user)
|
|
440
|
+
end
|
|
441
|
+
|
|
415
442
|
# A pin was added to a channel.
|
|
416
443
|
# @see https://api.slack.com/events/pin_added
|
|
417
444
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_added.json
|
|
@@ -430,7 +457,7 @@ module Slack
|
|
|
430
457
|
self.self.prefs[data.name] = data.value
|
|
431
458
|
end
|
|
432
459
|
|
|
433
|
-
# A
|
|
460
|
+
# A member's presence changed.
|
|
434
461
|
# @see https://api.slack.com/events/presence_change
|
|
435
462
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_change.json
|
|
436
463
|
on :presence_change do |data|
|
|
@@ -438,12 +465,22 @@ module Slack
|
|
|
438
465
|
user.presence = data.presence if user
|
|
439
466
|
end
|
|
440
467
|
|
|
441
|
-
#
|
|
468
|
+
# Determine the current presence status for a list of users.
|
|
469
|
+
# @see https://api.slack.com/events/presence_query
|
|
470
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_query.json
|
|
471
|
+
# on :presence_query do |data|
|
|
472
|
+
|
|
473
|
+
# Subscribe to presence events for the specified users.
|
|
474
|
+
# @see https://api.slack.com/events/presence_sub
|
|
475
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_sub.json
|
|
476
|
+
# on :presence_sub do |data|
|
|
477
|
+
|
|
478
|
+
# A member has added an emoji reaction to an item.
|
|
442
479
|
# @see https://api.slack.com/events/reaction_added
|
|
443
480
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_added.json
|
|
444
481
|
# on :reaction_added do |data|
|
|
445
482
|
|
|
446
|
-
# A
|
|
483
|
+
# A member removed an emoji reaction.
|
|
447
484
|
# @see https://api.slack.com/events/reaction_removed
|
|
448
485
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_removed.json
|
|
449
486
|
# on :reaction_removed do |data|
|
|
@@ -453,37 +490,47 @@ module Slack
|
|
|
453
490
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reconnect_url.json
|
|
454
491
|
# on :reconnect_url do |data|
|
|
455
492
|
|
|
456
|
-
# A
|
|
493
|
+
# A shared channel invite was sent to a Slack user.
|
|
494
|
+
# @see https://api.slack.com/events/shared_channel_invite_received
|
|
495
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/shared_channel_invite_received.json
|
|
496
|
+
# on :shared_channel_invite_received do |data|
|
|
497
|
+
|
|
498
|
+
# A member has starred an item.
|
|
457
499
|
# @see https://api.slack.com/events/star_added
|
|
458
500
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_added.json
|
|
459
501
|
# on :star_added do |data|
|
|
460
502
|
|
|
461
|
-
# A
|
|
503
|
+
# A member removed a star.
|
|
462
504
|
# @see https://api.slack.com/events/star_removed
|
|
463
505
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_removed.json
|
|
464
506
|
# on :star_removed do |data|
|
|
465
507
|
|
|
466
|
-
# A
|
|
508
|
+
# A User Group has been added to the workspace.
|
|
467
509
|
# @see https://api.slack.com/events/subteam_created
|
|
468
510
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_created.json
|
|
469
511
|
# on :subteam_created do |data|
|
|
470
512
|
|
|
471
|
-
#
|
|
513
|
+
# The membership of an existing User Group has changed.
|
|
514
|
+
# @see https://api.slack.com/events/subteam_members_changed
|
|
515
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_members_changed.json
|
|
516
|
+
# on :subteam_members_changed do |data|
|
|
517
|
+
|
|
518
|
+
# You have been added to a User Group.
|
|
472
519
|
# @see https://api.slack.com/events/subteam_self_added
|
|
473
520
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_added.json
|
|
474
521
|
# on :subteam_self_added do |data|
|
|
475
522
|
|
|
476
|
-
# You have been removed from a
|
|
523
|
+
# You have been removed from a User Group.
|
|
477
524
|
# @see https://api.slack.com/events/subteam_self_removed
|
|
478
525
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_removed.json
|
|
479
526
|
# on :subteam_self_removed do |data|
|
|
480
527
|
|
|
481
|
-
# An existing
|
|
528
|
+
# An existing User Group has been updated or its members changed.
|
|
482
529
|
# @see https://api.slack.com/events/subteam_updated
|
|
483
530
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_updated.json
|
|
484
531
|
# on :subteam_updated do |data|
|
|
485
532
|
|
|
486
|
-
# The
|
|
533
|
+
# The workspace domain has changed.
|
|
487
534
|
# @see https://api.slack.com/events/team_domain_change
|
|
488
535
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_domain_change.json
|
|
489
536
|
on :team_domain_change do |data|
|
|
@@ -491,26 +538,27 @@ module Slack
|
|
|
491
538
|
team.domain = data.domain
|
|
492
539
|
end
|
|
493
540
|
|
|
494
|
-
# A new
|
|
541
|
+
# A new member has joined.
|
|
495
542
|
# @see https://api.slack.com/events/team_join
|
|
496
543
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_join.json
|
|
497
544
|
on :team_join do |data|
|
|
498
|
-
|
|
545
|
+
user = Models::User.new(data.user)
|
|
546
|
+
users[user.id] = user
|
|
499
547
|
end
|
|
500
548
|
|
|
501
|
-
# The
|
|
549
|
+
# The workspace is being migrated between servers.
|
|
502
550
|
# @see https://api.slack.com/events/team_migration_started
|
|
503
551
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_migration_started.json
|
|
504
552
|
# on :team_migration_started do |data|
|
|
505
553
|
|
|
506
|
-
# The
|
|
554
|
+
# The account billing plan has changed.
|
|
507
555
|
# @see https://api.slack.com/events/team_plan_change
|
|
508
556
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_plan_change.json
|
|
509
557
|
on :team_plan_change do |data|
|
|
510
558
|
team.plan = data.plan
|
|
511
559
|
end
|
|
512
560
|
|
|
513
|
-
# A
|
|
561
|
+
# A preference has been updated.
|
|
514
562
|
# @see https://api.slack.com/events/team_pref_change
|
|
515
563
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_pref_change.json
|
|
516
564
|
on :team_pref_change do |data|
|
|
@@ -518,34 +566,53 @@ module Slack
|
|
|
518
566
|
team.prefs[data.name] = data.value
|
|
519
567
|
end
|
|
520
568
|
|
|
521
|
-
#
|
|
569
|
+
# The workspace profile fields have been updated.
|
|
522
570
|
# @see https://api.slack.com/events/team_profile_change
|
|
523
571
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_change.json
|
|
524
572
|
# on :team_profile_change do |data|
|
|
525
573
|
|
|
526
|
-
#
|
|
574
|
+
# The workspace profile fields have been deleted.
|
|
527
575
|
# @see https://api.slack.com/events/team_profile_delete
|
|
528
576
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_delete.json
|
|
529
577
|
# on :team_profile_delete do |data|
|
|
530
578
|
|
|
531
|
-
#
|
|
579
|
+
# The workspace profile fields have been reordered.
|
|
532
580
|
# @see https://api.slack.com/events/team_profile_reorder
|
|
533
581
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_reorder.json
|
|
534
582
|
# on :team_profile_reorder do |data|
|
|
535
583
|
|
|
536
|
-
# The
|
|
584
|
+
# The workspace name has changed.
|
|
537
585
|
# @see https://api.slack.com/events/team_rename
|
|
538
586
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_rename.json
|
|
539
587
|
on :team_rename do |data|
|
|
540
588
|
team.name = data.name
|
|
541
589
|
end
|
|
542
590
|
|
|
543
|
-
# A
|
|
591
|
+
# A member's data has changed.
|
|
544
592
|
# @see https://api.slack.com/events/user_change
|
|
545
593
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_change.json
|
|
546
594
|
on :user_change do |data|
|
|
547
|
-
|
|
548
|
-
|
|
595
|
+
user = Models::User.new(data.user)
|
|
596
|
+
users[user.id] = user
|
|
597
|
+
end
|
|
598
|
+
|
|
599
|
+
# A user's huddle status has changed.
|
|
600
|
+
# @see https://api.slack.com/events/user_huddle_changed
|
|
601
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_huddle_changed.json
|
|
602
|
+
# on :user_huddle_changed do |data|
|
|
603
|
+
# (handled by :user_change)
|
|
604
|
+
|
|
605
|
+
# A user's profile data has changed.
|
|
606
|
+
# @see https://api.slack.com/events/user_profile_changed
|
|
607
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_profile_changed.json
|
|
608
|
+
# on :user_profile_changed do |data|
|
|
609
|
+
# (handled by :user_change)
|
|
610
|
+
|
|
611
|
+
# A user's status has changed.
|
|
612
|
+
# @see https://api.slack.com/events/user_status_changed
|
|
613
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_status_changed.json
|
|
614
|
+
# on :user_status_changed do |data|
|
|
615
|
+
# (handled by :user_change)
|
|
549
616
|
|
|
550
617
|
# A channel member is typing a message.
|
|
551
618
|
# @see https://api.slack.com/events/user_typing
|