slack-ruby-client 2.7.0 → 3.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/.github/workflows/test.yml +3 -10
- data/.rubocop_todo.yml +45 -67
- data/CHANGELOG.md +7 -0
- data/Gemfile +0 -9
- data/LICENSE.md +1 -1
- data/README.md +16 -219
- data/Rakefile +0 -1
- data/UPGRADING.md +4 -0
- data/bin/commands/admin_analytics.rb +1 -1
- data/bin/commands/admin_apps.rb +4 -4
- data/bin/commands/admin_apps_activities.rb +7 -7
- data/bin/commands/admin_apps_approved.rb +4 -4
- data/bin/commands/admin_apps_config.rb +3 -1
- data/bin/commands/admin_apps_requests.rb +5 -5
- data/bin/commands/admin_apps_restricted.rb +4 -4
- data/bin/commands/admin_audit_anomaly_allow.rb +6 -6
- data/bin/commands/admin_auth_policy.rb +5 -5
- data/bin/commands/admin_barriers.rb +3 -3
- data/bin/commands/admin_conversations.rb +15 -15
- data/bin/commands/admin_conversations_ekm.rb +2 -2
- data/bin/commands/admin_conversations_restrictAccess.rb +5 -5
- data/bin/commands/admin_emoji.rb +5 -5
- data/bin/commands/admin_functions.rb +1 -1
- data/bin/commands/admin_inviteRequests.rb +3 -3
- data/bin/commands/admin_inviteRequests_approved.rb +1 -1
- data/bin/commands/admin_inviteRequests_denied.rb +1 -1
- data/bin/commands/admin_roles.rb +3 -3
- data/bin/commands/admin_teams.rb +3 -3
- data/bin/commands/admin_teams_admins.rb +2 -2
- data/bin/commands/admin_teams_owners.rb +2 -2
- data/bin/commands/admin_teams_settings.rb +5 -5
- data/bin/commands/admin_usergroups.rb +4 -4
- data/bin/commands/admin_users.rb +12 -11
- data/bin/commands/admin_users_session.rb +6 -5
- data/bin/commands/admin_users_unsupportedVersions.rb +1 -1
- data/bin/commands/admin_workflows.rb +6 -6
- data/bin/commands/admin_workflows_collaborators.rb +2 -2
- data/bin/commands/apps_activities.rb +7 -7
- data/bin/commands/apps_auth_external.rb +1 -1
- data/bin/commands/apps_datastore.rb +12 -12
- data/bin/commands/apps_event_authorizations.rb +3 -3
- data/bin/commands/apps_manifest.rb +1 -1
- data/bin/commands/assistant_search.rb +18 -2
- data/bin/commands/assistant_threads.rb +2 -2
- data/bin/commands/auth.rb +1 -1
- data/bin/commands/auth_teams.rb +1 -1
- data/bin/commands/bookmarks.rb +6 -6
- data/bin/commands/calls.rb +5 -5
- data/bin/commands/canvases.rb +2 -2
- data/bin/commands/canvases_access.rb +1 -1
- data/bin/commands/chat.rb +23 -24
- data/bin/commands/conversations.rb +8 -8
- data/bin/commands/conversations_canvases.rb +1 -1
- data/bin/commands/conversations_externalInvitePermissions.rb +1 -1
- data/bin/commands/conversations_requestSharedInvite.rb +4 -4
- data/bin/commands/dnd.rb +1 -1
- data/bin/commands/files.rb +5 -5
- data/bin/commands/files_remote.rb +1 -1
- data/bin/commands/functions.rb +1 -1
- data/bin/commands/functions_distributions_permissions.rb +15 -15
- data/bin/commands/functions_workflows_steps.rb +2 -2
- data/bin/commands/functions_workflows_steps_responses.rb +2 -2
- data/bin/commands/migration.rb +2 -2
- data/bin/commands/oauth_v2.rb +1 -1
- data/bin/commands/openid_connect.rb +1 -1
- data/bin/commands/reactions.rb +3 -3
- data/bin/commands/reminders.rb +2 -2
- data/bin/commands/rtm.rb +15 -0
- data/bin/commands/search.rb +4 -4
- data/bin/commands/slackLists.rb +37 -0
- data/bin/commands/slackLists_access.rb +34 -0
- data/bin/commands/slackLists_download.rb +31 -0
- data/bin/commands/slackLists_items.rb +76 -0
- data/bin/commands/team.rb +1 -1
- data/bin/commands/team_externalTeams.rb +4 -4
- data/bin/commands/usergroups.rb +10 -10
- data/bin/commands/usergroups_users.rb +5 -5
- data/bin/commands/users.rb +1 -1
- data/bin/commands/users_discoverableContacts.rb +1 -1
- data/bin/commands/views.rb +4 -4
- data/bin/commands/workflows_featured.rb +50 -0
- data/bin/commands/workflows_triggers_permissions.rb +7 -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 +8 -8
- data/lib/slack/web/api/endpoints/admin_apps_activities.rb +14 -14
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +5 -7
- data/lib/slack/web/api/endpoints/admin_apps_config.rb +6 -3
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +7 -9
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +5 -7
- data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +5 -5
- data/lib/slack/web/api/endpoints/admin_auth_policy.rb +14 -14
- data/lib/slack/web/api/endpoints/admin_barriers.rb +8 -8
- data/lib/slack/web/api/endpoints/admin_conversations.rb +27 -28
- data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +4 -4
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +11 -12
- data/lib/slack/web/api/endpoints/admin_emoji.rb +5 -5
- data/lib/slack/web/api/endpoints/admin_functions.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +6 -6
- data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_roles.rb +8 -8
- data/lib/slack/web/api/endpoints/admin_teams.rb +3 -3
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +3 -4
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +2 -3
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +12 -13
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +11 -11
- data/lib/slack/web/api/endpoints/admin_users.rb +27 -25
- data/lib/slack/web/api/endpoints/admin_users_session.rb +12 -9
- data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +2 -2
- data/lib/slack/web/api/endpoints/admin_workflows.rb +12 -12
- data/lib/slack/web/api/endpoints/admin_workflows_collaborators.rb +6 -6
- data/lib/slack/web/api/endpoints/apps_activities.rb +14 -14
- data/lib/slack/web/api/endpoints/apps_auth_external.rb +2 -2
- data/lib/slack/web/api/endpoints/apps_datastore.rb +8 -15
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +0 -3
- data/lib/slack/web/api/endpoints/apps_manifest.rb +5 -5
- data/lib/slack/web/api/endpoints/assistant_search.rb +28 -3
- data/lib/slack/web/api/endpoints/assistant_threads.rb +6 -6
- data/lib/slack/web/api/endpoints/auth.rb +1 -1
- data/lib/slack/web/api/endpoints/auth_teams.rb +2 -2
- data/lib/slack/web/api/endpoints/bookmarks.rb +14 -14
- data/lib/slack/web/api/endpoints/calls.rb +10 -10
- data/lib/slack/web/api/endpoints/canvases.rb +4 -4
- data/lib/slack/web/api/endpoints/canvases_access.rb +3 -3
- data/lib/slack/web/api/endpoints/chat.rb +53 -55
- data/lib/slack/web/api/endpoints/conversations.rb +16 -16
- data/lib/slack/web/api/endpoints/conversations_canvases.rb +1 -1
- data/lib/slack/web/api/endpoints/conversations_externalInvitePermissions.rb +3 -3
- data/lib/slack/web/api/endpoints/conversations_requestSharedInvite.rb +8 -8
- data/lib/slack/web/api/endpoints/dnd.rb +2 -2
- data/lib/slack/web/api/endpoints/files.rb +11 -11
- data/lib/slack/web/api/endpoints/files_remote.rb +2 -2
- data/lib/slack/web/api/endpoints/functions.rb +3 -3
- data/lib/slack/web/api/endpoints/functions_distributions_permissions.rb +24 -24
- data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +4 -4
- data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +4 -4
- 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/openid_connect.rb +2 -2
- data/lib/slack/web/api/endpoints/reactions.rb +6 -6
- data/lib/slack/web/api/endpoints/reminders.rb +4 -4
- data/lib/slack/web/api/endpoints/rtm.rb +23 -0
- data/lib/slack/web/api/endpoints/search.rb +8 -8
- data/lib/slack/web/api/endpoints/slackLists.rb +52 -0
- data/lib/slack/web/api/endpoints/slackLists_access.rb +47 -0
- data/lib/slack/web/api/endpoints/slackLists_download.rb +40 -0
- data/lib/slack/web/api/endpoints/slackLists_items.rb +116 -0
- data/lib/slack/web/api/endpoints/team.rb +3 -3
- data/lib/slack/web/api/endpoints/team_externalTeams.rb +8 -8
- data/lib/slack/web/api/endpoints/usergroups.rb +18 -18
- data/lib/slack/web/api/endpoints/usergroups_users.rb +8 -8
- data/lib/slack/web/api/endpoints/users.rb +2 -2
- data/lib/slack/web/api/endpoints/users_discoverableContacts.rb +0 -1
- data/lib/slack/web/api/endpoints/views.rb +9 -9
- data/lib/slack/web/api/endpoints/workflows_featured.rb +69 -0
- data/lib/slack/web/api/endpoints/workflows_triggers_permissions.rb +15 -15
- data/lib/slack/web/api/endpoints.rb +10 -2
- data/lib/slack/web/api/errors.rb +88 -46
- data/lib/slack/web/faraday/response/raise_error.rb +20 -2
- data/lib/slack-ruby-client.rb +0 -12
- data/lib/tasks/update.rake +0 -1
- data/lib/tasks/web.rake +0 -4
- metadata +12 -35
- data/.github/workflows/integration_test.yml +0 -45
- data/bin/commands/workflows.rb +0 -44
- data/examples/hi_real_time_and_web/Gemfile +0 -6
- data/examples/hi_real_time_and_web/hi.gif +0 -0
- data/examples/hi_real_time_and_web/hi.rb +0 -28
- data/examples/hi_real_time_async_async/Gemfile +0 -7
- data/examples/hi_real_time_async_async/Procfile +0 -2
- data/examples/hi_real_time_async_async/hi.rb +0 -41
- data/lib/slack/real_time/api/message.rb +0 -23
- data/lib/slack/real_time/api/message_id.rb +0 -15
- data/lib/slack/real_time/api/ping.rb +0 -19
- data/lib/slack/real_time/api/schema/event.json +0 -23
- data/lib/slack/real_time/api/templates/event_handler.erb +0 -8
- data/lib/slack/real_time/api/typing.rb +0 -20
- data/lib/slack/real_time/client.rb +0 -271
- data/lib/slack/real_time/concurrency/async.rb +0 -142
- data/lib/slack/real_time/concurrency.rb +0 -8
- data/lib/slack/real_time/config.rb +0 -62
- data/lib/slack/real_time/models/base.rb +0 -11
- data/lib/slack/real_time/models/bot.rb +0 -9
- data/lib/slack/real_time/models/channel.rb +0 -13
- data/lib/slack/real_time/models/im.rb +0 -9
- data/lib/slack/real_time/models/mpim.rb +0 -9
- data/lib/slack/real_time/models/team.rb +0 -9
- data/lib/slack/real_time/models/user.rb +0 -9
- data/lib/slack/real_time/models.rb +0 -9
- data/lib/slack/real_time/socket.rb +0 -118
- data/lib/slack/real_time/stores/base.rb +0 -47
- data/lib/slack/real_time/stores/starter.rb +0 -449
- data/lib/slack/real_time/stores/store.rb +0 -624
- data/lib/slack/real_time/stores.rb +0 -5
- data/lib/slack/web/api/endpoints/workflows.rb +0 -63
- data/lib/tasks/real_time.rake +0 -81
@@ -1,624 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Slack
|
4
|
-
module RealTime
|
5
|
-
module Stores
|
6
|
-
# Full store with initialization logic
|
7
|
-
class Store < Base
|
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 = {}
|
25
|
-
|
26
|
-
if attrs.team
|
27
|
-
@team_id = attrs.team.id
|
28
|
-
@teams[@team_id] = Models::Team.new(attrs.team)
|
29
|
-
end
|
30
|
-
|
31
|
-
if attrs.self
|
32
|
-
@self_id = attrs.self.id
|
33
|
-
@users[@self_id] = Models::User.new(attrs.self)
|
34
|
-
end
|
35
|
-
|
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?
|
41
|
-
|
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
|
49
|
-
|
50
|
-
def self
|
51
|
-
users[@self_id]
|
52
|
-
end
|
53
|
-
|
54
|
-
def team
|
55
|
-
teams[@team_id]
|
56
|
-
end
|
57
|
-
|
58
|
-
### RealTime Events
|
59
|
-
|
60
|
-
# The list of accounts a user is signed into has changed.
|
61
|
-
# @see https://api.slack.com/events/accounts_changed
|
62
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/accounts_changed.json
|
63
|
-
# on :accounts_changed do |data|
|
64
|
-
|
65
|
-
# A bot user was added.
|
66
|
-
# @see https://api.slack.com/events/bot_added
|
67
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_added.json
|
68
|
-
on :bot_added do |data|
|
69
|
-
bot = Models::Bot.new(data.bot)
|
70
|
-
bots[bot.id] = bot
|
71
|
-
end
|
72
|
-
|
73
|
-
# A bot user was changed.
|
74
|
-
# @see https://api.slack.com/events/bot_changed
|
75
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
|
76
|
-
on :bot_changed do |data|
|
77
|
-
bot = bots[data.bot.id]
|
78
|
-
bot&.merge!(data.bot)
|
79
|
-
end
|
80
|
-
|
81
|
-
# A channel was archived.
|
82
|
-
# @see https://api.slack.com/events/channel_archive
|
83
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_archive.json
|
84
|
-
on :channel_archive do |data|
|
85
|
-
channel = public_channels[data.channel]
|
86
|
-
channel.is_archived = true if channel
|
87
|
-
end
|
88
|
-
|
89
|
-
# A channel was created.
|
90
|
-
# @see https://api.slack.com/events/channel_created
|
91
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_created.json
|
92
|
-
on :channel_created do |data|
|
93
|
-
channel = Models::Channel.new(data.channel)
|
94
|
-
public_channels[channel.id] = channel
|
95
|
-
end
|
96
|
-
|
97
|
-
# A channel was deleted.
|
98
|
-
# @see https://api.slack.com/events/channel_deleted
|
99
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_deleted.json
|
100
|
-
on :channel_deleted do |data|
|
101
|
-
public_channels.delete(data.channel)
|
102
|
-
end
|
103
|
-
|
104
|
-
# Bulk updates were made to a channel's history.
|
105
|
-
# @see https://api.slack.com/events/channel_history_changed
|
106
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_history_changed.json
|
107
|
-
# on :channel_history_changed do |data|
|
108
|
-
|
109
|
-
# You joined a channel.
|
110
|
-
# @see https://api.slack.com/events/channel_joined
|
111
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_joined.json
|
112
|
-
on :channel_joined do |data|
|
113
|
-
channel_id = data.channel.id
|
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
|
121
|
-
else
|
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
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
# You left a channel.
|
132
|
-
# @see https://api.slack.com/events/channel_left
|
133
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_left.json
|
134
|
-
on :channel_left do |data|
|
135
|
-
channel = public_channels[data.channel]
|
136
|
-
channel&.members&.delete(self.self.id)
|
137
|
-
end
|
138
|
-
|
139
|
-
# Your channel read marker was updated.
|
140
|
-
# @see https://api.slack.com/events/channel_marked
|
141
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_marked.json
|
142
|
-
# on :channel_marked do |data|
|
143
|
-
|
144
|
-
# A channel was renamed.
|
145
|
-
# @see https://api.slack.com/events/channel_rename
|
146
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_rename.json
|
147
|
-
on :channel_rename do |data|
|
148
|
-
channel = public_channels[data.channel.id]
|
149
|
-
channel&.merge!(data.channel)
|
150
|
-
end
|
151
|
-
|
152
|
-
# A channel was unarchived.
|
153
|
-
# @see https://api.slack.com/events/channel_unarchive
|
154
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_unarchive.json
|
155
|
-
on :channel_unarchive do |data|
|
156
|
-
channel = public_channels[data.channel]
|
157
|
-
channel.is_archived = false if channel
|
158
|
-
end
|
159
|
-
|
160
|
-
# A slash command has been added or changed.
|
161
|
-
# @see https://api.slack.com/events/commands_changed
|
162
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/commands_changed.json
|
163
|
-
# on :commands_changed do |data|
|
164
|
-
|
165
|
-
# Do not Disturb settings changed for the current user.
|
166
|
-
# @see https://api.slack.com/events/dnd_updated
|
167
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated.json
|
168
|
-
on :dnd_updated do |data|
|
169
|
-
self.dnd_status = data.dnd_status
|
170
|
-
end
|
171
|
-
|
172
|
-
# Do not Disturb settings changed for a member.
|
173
|
-
# @see https://api.slack.com/events/dnd_updated_user
|
174
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated_user.json
|
175
|
-
on :dnd_updated_user do |data|
|
176
|
-
user = users[data.user]
|
177
|
-
user.dnd_status = data.dnd_status if user
|
178
|
-
end
|
179
|
-
|
180
|
-
# The workspace email domain has changed.
|
181
|
-
# @see https://api.slack.com/events/email_domain_changed
|
182
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/email_domain_changed.json
|
183
|
-
on :email_domain_changed do |data|
|
184
|
-
team.email_domain = data.email_domain
|
185
|
-
end
|
186
|
-
|
187
|
-
# A custom emoji has been added or changed.
|
188
|
-
# @see https://api.slack.com/events/emoji_changed
|
189
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/emoji_changed.json
|
190
|
-
# on :emoji_changed do |data|
|
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
|
-
|
202
|
-
# A file was changed.
|
203
|
-
# @see https://api.slack.com/events/file_change
|
204
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_change.json
|
205
|
-
# on :file_change do |data|
|
206
|
-
|
207
|
-
# A file comment was added.
|
208
|
-
# @see https://api.slack.com/events/file_comment_added
|
209
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_added.json
|
210
|
-
# on :file_comment_added do |data|
|
211
|
-
|
212
|
-
# A file comment was deleted.
|
213
|
-
# @see https://api.slack.com/events/file_comment_deleted
|
214
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_deleted.json
|
215
|
-
# on :file_comment_deleted do |data|
|
216
|
-
|
217
|
-
# A file comment was edited.
|
218
|
-
# @see https://api.slack.com/events/file_comment_edited
|
219
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_edited.json
|
220
|
-
# on :file_comment_edited do |data|
|
221
|
-
|
222
|
-
# A file was created.
|
223
|
-
# @see https://api.slack.com/events/file_created
|
224
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_created.json
|
225
|
-
# on :file_created do |data|
|
226
|
-
|
227
|
-
# A file was deleted.
|
228
|
-
# @see https://api.slack.com/events/file_deleted
|
229
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_deleted.json
|
230
|
-
# on :file_deleted do |data|
|
231
|
-
|
232
|
-
# A file was made public.
|
233
|
-
# @see https://api.slack.com/events/file_public
|
234
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_public.json
|
235
|
-
# on :file_public do |data|
|
236
|
-
|
237
|
-
# A file was shared.
|
238
|
-
# @see https://api.slack.com/events/file_shared
|
239
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_shared.json
|
240
|
-
# on :file_shared do |data|
|
241
|
-
|
242
|
-
# A file was unshared.
|
243
|
-
# @see https://api.slack.com/events/file_unshared
|
244
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_unshared.json
|
245
|
-
# on :file_unshared do |data|
|
246
|
-
|
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.
|
253
|
-
# @see https://api.slack.com/events/group_archive
|
254
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_archive.json
|
255
|
-
on :group_archive do |data|
|
256
|
-
channel = private_channels[data.channel]
|
257
|
-
channel.is_archived = true if channel
|
258
|
-
end
|
259
|
-
|
260
|
-
# You closed a private channel.
|
261
|
-
# @see https://api.slack.com/events/group_close
|
262
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_close.json
|
263
|
-
on :group_close do |data|
|
264
|
-
channel = private_channels[data.channel]
|
265
|
-
channel.is_open = false if channel
|
266
|
-
end
|
267
|
-
|
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.
|
276
|
-
# @see https://api.slack.com/events/group_history_changed
|
277
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_history_changed.json
|
278
|
-
# on :group_history_changed do |data|
|
279
|
-
|
280
|
-
# You joined a private channel.
|
281
|
-
# @see https://api.slack.com/events/group_joined
|
282
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_joined.json
|
283
|
-
on :group_joined do |data|
|
284
|
-
channel = Models::Channel.new(data.channel)
|
285
|
-
private_channels[channel.id] = channel
|
286
|
-
end
|
287
|
-
|
288
|
-
# You left a private channel.
|
289
|
-
# @see https://api.slack.com/events/group_left
|
290
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
|
291
|
-
on :group_left do |data|
|
292
|
-
# Deleting because we can't access a private channel when we're not a member
|
293
|
-
private_channels.delete(data.channel)
|
294
|
-
end
|
295
|
-
|
296
|
-
# A private channel read marker was updated.
|
297
|
-
# @see https://api.slack.com/events/group_marked
|
298
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_marked.json
|
299
|
-
# on :group_marked do |data|
|
300
|
-
|
301
|
-
# You created a group DM.
|
302
|
-
# @see https://api.slack.com/events/group_open
|
303
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_open.json
|
304
|
-
on :group_open do |data|
|
305
|
-
channel = private_channels[data.channel]
|
306
|
-
channel.is_open = true if channel
|
307
|
-
end
|
308
|
-
|
309
|
-
# A private channel was renamed.
|
310
|
-
# @see https://api.slack.com/events/group_rename
|
311
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_rename.json
|
312
|
-
on :group_rename do |data|
|
313
|
-
channel = private_channels[data.channel.id]
|
314
|
-
channel&.merge!(data.channel)
|
315
|
-
end
|
316
|
-
|
317
|
-
# A private channel was unarchived.
|
318
|
-
# @see https://api.slack.com/events/group_unarchive
|
319
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_unarchive.json
|
320
|
-
on :group_unarchive do |data|
|
321
|
-
channel = private_channels[data.channel]
|
322
|
-
channel.is_archived = false if channel
|
323
|
-
end
|
324
|
-
|
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.
|
381
|
-
# @see https://api.slack.com/events/im_close
|
382
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
|
383
|
-
on :im_close do |data|
|
384
|
-
return unless ims&.key?(data.channel)
|
385
|
-
|
386
|
-
ims[data.channel].is_open = false
|
387
|
-
end
|
388
|
-
|
389
|
-
# A DM was created.
|
390
|
-
# @see https://api.slack.com/events/im_created
|
391
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_created.json
|
392
|
-
on :im_created do |data|
|
393
|
-
im = Models::Im.new(data.channel)
|
394
|
-
ims[im.id] = im
|
395
|
-
end
|
396
|
-
|
397
|
-
# Bulk updates were made to a DM's history.
|
398
|
-
# @see https://api.slack.com/events/im_history_changed
|
399
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
|
400
|
-
# on :im_history_changed do |data|
|
401
|
-
|
402
|
-
# A direct message read marker was updated.
|
403
|
-
# @see https://api.slack.com/events/im_marked
|
404
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
|
405
|
-
# on :im_marked do |data|
|
406
|
-
|
407
|
-
# You opened a DM.
|
408
|
-
# @see https://api.slack.com/events/im_open
|
409
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
|
410
|
-
on :im_open do |data|
|
411
|
-
return unless ims&.key?(data.channel)
|
412
|
-
|
413
|
-
ims[data.channel].is_open = true
|
414
|
-
end
|
415
|
-
|
416
|
-
# You manually updated your presence.
|
417
|
-
# @see https://api.slack.com/events/manual_presence_change
|
418
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/manual_presence_change.json
|
419
|
-
on :manual_presence_change do |data|
|
420
|
-
self.self.presence = data.presence
|
421
|
-
end
|
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
|
-
|
442
|
-
# A pin was added to a channel.
|
443
|
-
# @see https://api.slack.com/events/pin_added
|
444
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_added.json
|
445
|
-
# on :pin_added do |data|
|
446
|
-
|
447
|
-
# A pin was removed from a channel.
|
448
|
-
# @see https://api.slack.com/events/pin_removed
|
449
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_removed.json
|
450
|
-
# on :pin_removed do |data|
|
451
|
-
|
452
|
-
# You have updated your preferences.
|
453
|
-
# @see https://api.slack.com/events/pref_change
|
454
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pref_change.json
|
455
|
-
on :pref_change do |data|
|
456
|
-
self.self.prefs ||= {}
|
457
|
-
self.self.prefs[data.name] = data.value
|
458
|
-
end
|
459
|
-
|
460
|
-
# A member's presence changed.
|
461
|
-
# @see https://api.slack.com/events/presence_change
|
462
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_change.json
|
463
|
-
on :presence_change do |data|
|
464
|
-
user = users[data.user]
|
465
|
-
user.presence = data.presence if user
|
466
|
-
end
|
467
|
-
|
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.
|
479
|
-
# @see https://api.slack.com/events/reaction_added
|
480
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_added.json
|
481
|
-
# on :reaction_added do |data|
|
482
|
-
|
483
|
-
# A member removed an emoji reaction.
|
484
|
-
# @see https://api.slack.com/events/reaction_removed
|
485
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_removed.json
|
486
|
-
# on :reaction_removed do |data|
|
487
|
-
|
488
|
-
# Experimental.
|
489
|
-
# @see https://api.slack.com/events/reconnect_url
|
490
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reconnect_url.json
|
491
|
-
# on :reconnect_url do |data|
|
492
|
-
|
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 saved an item for later or starred an item.
|
499
|
-
# @see https://api.slack.com/events/star_added
|
500
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_added.json
|
501
|
-
# on :star_added do |data|
|
502
|
-
|
503
|
-
# A member has removed an item saved for later or starred an item.
|
504
|
-
# @see https://api.slack.com/events/star_removed
|
505
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_removed.json
|
506
|
-
# on :star_removed do |data|
|
507
|
-
|
508
|
-
# A User Group has been added to the workspace.
|
509
|
-
# @see https://api.slack.com/events/subteam_created
|
510
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_created.json
|
511
|
-
# on :subteam_created do |data|
|
512
|
-
|
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.
|
519
|
-
# @see https://api.slack.com/events/subteam_self_added
|
520
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_added.json
|
521
|
-
# on :subteam_self_added do |data|
|
522
|
-
|
523
|
-
# You have been removed from a User Group.
|
524
|
-
# @see https://api.slack.com/events/subteam_self_removed
|
525
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_removed.json
|
526
|
-
# on :subteam_self_removed do |data|
|
527
|
-
|
528
|
-
# An existing User Group has been updated or its members changed.
|
529
|
-
# @see https://api.slack.com/events/subteam_updated
|
530
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_updated.json
|
531
|
-
# on :subteam_updated do |data|
|
532
|
-
|
533
|
-
# The workspace domain has changed.
|
534
|
-
# @see https://api.slack.com/events/team_domain_change
|
535
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_domain_change.json
|
536
|
-
on :team_domain_change do |data|
|
537
|
-
team.url = data.url
|
538
|
-
team.domain = data.domain
|
539
|
-
end
|
540
|
-
|
541
|
-
# A new member has joined.
|
542
|
-
# @see https://api.slack.com/events/team_join
|
543
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_join.json
|
544
|
-
on :team_join do |data|
|
545
|
-
user = Models::User.new(data.user)
|
546
|
-
users[user.id] = user
|
547
|
-
end
|
548
|
-
|
549
|
-
# The workspace is being migrated between servers.
|
550
|
-
# @see https://api.slack.com/events/team_migration_started
|
551
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_migration_started.json
|
552
|
-
# on :team_migration_started do |data|
|
553
|
-
|
554
|
-
# The account billing plan has changed.
|
555
|
-
# @see https://api.slack.com/events/team_plan_change
|
556
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_plan_change.json
|
557
|
-
on :team_plan_change do |data|
|
558
|
-
team.plan = data.plan
|
559
|
-
end
|
560
|
-
|
561
|
-
# A preference has been updated.
|
562
|
-
# @see https://api.slack.com/events/team_pref_change
|
563
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_pref_change.json
|
564
|
-
on :team_pref_change do |data|
|
565
|
-
team.prefs ||= {}
|
566
|
-
team.prefs[data.name] = data.value
|
567
|
-
end
|
568
|
-
|
569
|
-
# The workspace profile fields have been updated.
|
570
|
-
# @see https://api.slack.com/events/team_profile_change
|
571
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_change.json
|
572
|
-
# on :team_profile_change do |data|
|
573
|
-
|
574
|
-
# The workspace profile fields have been deleted.
|
575
|
-
# @see https://api.slack.com/events/team_profile_delete
|
576
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_delete.json
|
577
|
-
# on :team_profile_delete do |data|
|
578
|
-
|
579
|
-
# The workspace profile fields have been reordered.
|
580
|
-
# @see https://api.slack.com/events/team_profile_reorder
|
581
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_reorder.json
|
582
|
-
# on :team_profile_reorder do |data|
|
583
|
-
|
584
|
-
# The workspace name has changed.
|
585
|
-
# @see https://api.slack.com/events/team_rename
|
586
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_rename.json
|
587
|
-
on :team_rename do |data|
|
588
|
-
team.name = data.name
|
589
|
-
end
|
590
|
-
|
591
|
-
# A member's data has changed.
|
592
|
-
# @see https://api.slack.com/events/user_change
|
593
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_change.json
|
594
|
-
on :user_change do |data|
|
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)
|
616
|
-
|
617
|
-
# A channel member is typing a message.
|
618
|
-
# @see https://api.slack.com/events/user_typing
|
619
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_typing.json
|
620
|
-
# on :user_typing do |data|
|
621
|
-
end
|
622
|
-
end
|
623
|
-
end
|
624
|
-
end
|