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.
Files changed (239) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/integration_test.yml +45 -0
  4. data/.github/workflows/lint.yml +14 -0
  5. data/.github/workflows/pr_lint.yml +21 -0
  6. data/.github/workflows/test.yml +37 -0
  7. data/.gitignore +4 -3
  8. data/.rubocop.yml +6 -1
  9. data/.rubocop_todo.yml +88 -34
  10. data/.ruby-version +1 -0
  11. data/CHANGELOG.md +36 -0
  12. data/CONTRIBUTING.md +6 -5
  13. data/Gemfile +13 -1
  14. data/Gemfile.danger +6 -0
  15. data/README.md +78 -76
  16. data/RELEASING.md +2 -2
  17. data/SECURITY.md +9 -0
  18. data/UPGRADING.md +28 -0
  19. data/bin/commands/admin_analytics.rb +16 -10
  20. data/bin/commands/admin_apps.rb +48 -42
  21. data/bin/commands/admin_apps_approved.rb +17 -11
  22. data/bin/commands/admin_apps_requests.rb +28 -11
  23. data/bin/commands/admin_apps_restricted.rb +17 -11
  24. data/bin/commands/admin_audit_anomaly_allow.rb +29 -0
  25. data/bin/commands/admin_auth_policy.rb +37 -31
  26. data/bin/commands/admin_barriers.rb +44 -38
  27. data/bin/commands/admin_conversations.rb +221 -163
  28. data/bin/commands/admin_conversations_ekm.rb +17 -11
  29. data/bin/commands/admin_conversations_restrictAccess.rb +35 -29
  30. data/bin/commands/admin_emoji.rb +50 -44
  31. data/bin/commands/admin_inviteRequests.rb +34 -28
  32. data/bin/commands/admin_inviteRequests_approved.rb +16 -10
  33. data/bin/commands/admin_inviteRequests_denied.rb +16 -10
  34. data/bin/commands/admin_roles.rb +46 -0
  35. data/bin/commands/admin_teams.rb +26 -20
  36. data/bin/commands/admin_teams_admins.rb +16 -10
  37. data/bin/commands/admin_teams_owners.rb +16 -10
  38. data/bin/commands/admin_teams_settings.rb +59 -53
  39. data/bin/commands/admin_usergroups.rb +45 -39
  40. data/bin/commands/admin_users.rb +91 -85
  41. data/bin/commands/admin_users_session.rb +72 -66
  42. data/bin/commands/admin_users_unsupportedVersions.rb +21 -0
  43. data/bin/commands/api.rb +14 -8
  44. data/bin/commands/apps.rb +15 -9
  45. data/bin/commands/apps_connections.rb +13 -7
  46. data/bin/commands/apps_event_authorizations.rb +16 -10
  47. data/bin/commands/apps_manifest.rb +48 -41
  48. data/bin/commands/auth.rb +21 -15
  49. data/bin/commands/auth_teams.rb +16 -10
  50. data/bin/commands/bookmarks.rb +59 -0
  51. data/bin/commands/bots.rb +15 -9
  52. data/bin/commands/calls.rb +49 -43
  53. data/bin/commands/calls_participants.rb +24 -18
  54. data/bin/commands/chat.rb +150 -141
  55. data/bin/commands/chat_scheduledMessages.rb +19 -13
  56. data/bin/commands/conversations.rb +233 -225
  57. data/bin/commands/dialog.rb +15 -9
  58. data/bin/commands/dnd.rb +46 -40
  59. data/bin/commands/emoji.rb +14 -7
  60. data/bin/commands/files.rb +112 -83
  61. data/bin/commands/files_comments.rb +15 -9
  62. data/bin/commands/files_remote.rb +73 -67
  63. data/bin/commands/functions_workflows_steps.rb +22 -0
  64. data/bin/commands/functions_workflows_steps_responses.rb +22 -0
  65. data/bin/commands/migration.rb +16 -10
  66. data/bin/commands/oauth.rb +18 -12
  67. data/bin/commands/oauth_v2.rb +28 -22
  68. data/bin/commands/openid_connect.rb +26 -20
  69. data/bin/commands/pins.rb +33 -26
  70. data/bin/commands/reactions.rb +52 -46
  71. data/bin/commands/reminders.rb +53 -47
  72. data/bin/commands/rtm.rb +15 -24
  73. data/bin/commands/search.rb +43 -37
  74. data/bin/commands/stars.rb +38 -32
  75. data/bin/commands/team.rb +47 -38
  76. data/bin/commands/team_billing.rb +13 -7
  77. data/bin/commands/team_preferences.rb +13 -7
  78. data/bin/commands/team_profile.rb +14 -8
  79. data/bin/commands/tooling_tokens.rb +14 -8
  80. data/bin/commands/usergroups.rb +64 -58
  81. data/bin/commands/usergroups_users.rb +27 -21
  82. data/bin/commands/users.rb +111 -105
  83. data/bin/commands/users_admin.rb +28 -22
  84. data/bin/commands/users_prefs.rb +13 -7
  85. data/bin/commands/users_profile.rb +26 -20
  86. data/bin/commands/views.rb +47 -39
  87. data/bin/commands/workflows.rb +36 -30
  88. data/bin/slack +48 -43
  89. data/lib/slack/real_time/api/message.rb +3 -2
  90. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  91. data/lib/slack/real_time/api/typing.rb +2 -1
  92. data/lib/slack/real_time/client.rb +10 -28
  93. data/lib/slack/real_time/config.rb +3 -3
  94. data/lib/slack/real_time/models/channel.rb +4 -0
  95. data/lib/slack/real_time/models/{group.rb → mpim.rb} +1 -1
  96. data/lib/slack/real_time/models.rb +2 -1
  97. data/lib/slack/real_time/stores/base.rb +25 -9
  98. data/lib/slack/real_time/stores/starter.rb +323 -309
  99. data/lib/slack/real_time/stores/store.rb +265 -198
  100. data/lib/slack/real_time/stores.rb +1 -7
  101. data/lib/slack/version.rb +1 -1
  102. data/lib/slack/web/api/endpoints/admin_analytics.rb +2 -2
  103. data/lib/slack/web/api/endpoints/admin_apps.rb +2 -2
  104. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +16 -0
  105. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  106. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +7 -7
  107. data/lib/slack/web/api/endpoints/admin_barriers.rb +8 -8
  108. data/lib/slack/web/api/endpoints/admin_conversations.rb +110 -28
  109. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +6 -6
  110. data/lib/slack/web/api/endpoints/admin_emoji.rb +9 -9
  111. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +2 -2
  112. data/lib/slack/web/api/endpoints/admin_roles.rb +73 -0
  113. data/lib/slack/web/api/endpoints/admin_teams.rb +2 -2
  114. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +1 -1
  115. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +1 -1
  116. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +11 -11
  117. data/lib/slack/web/api/endpoints/admin_usergroups.rb +7 -7
  118. data/lib/slack/web/api/endpoints/admin_users.rb +16 -16
  119. data/lib/slack/web/api/endpoints/admin_users_session.rb +8 -8
  120. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  121. data/lib/slack/web/api/endpoints/apps.rb +2 -2
  122. data/lib/slack/web/api/endpoints/apps_connections.rb +1 -1
  123. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +1 -1
  124. data/lib/slack/web/api/endpoints/apps_manifest.rb +8 -6
  125. data/lib/slack/web/api/endpoints/bookmarks.rb +88 -0
  126. data/lib/slack/web/api/endpoints/bots.rb +1 -1
  127. data/lib/slack/web/api/endpoints/calls.rb +5 -5
  128. data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
  129. data/lib/slack/web/api/endpoints/chat.rb +37 -31
  130. data/lib/slack/web/api/endpoints/conversations.rb +38 -34
  131. data/lib/slack/web/api/endpoints/dialog.rb +2 -2
  132. data/lib/slack/web/api/endpoints/dnd.rb +1 -1
  133. data/lib/slack/web/api/endpoints/emoji.rb +2 -0
  134. data/lib/slack/web/api/endpoints/files.rb +45 -10
  135. data/lib/slack/web/api/endpoints/files_comments.rb +2 -2
  136. data/lib/slack/web/api/endpoints/files_remote.rb +8 -8
  137. data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +28 -0
  138. data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +28 -0
  139. data/lib/slack/web/api/endpoints/migration.rb +1 -1
  140. data/lib/slack/web/api/endpoints/oauth_v2.rb +2 -2
  141. data/lib/slack/web/api/endpoints/pins.rb +5 -3
  142. data/lib/slack/web/api/endpoints/reactions.rb +4 -4
  143. data/lib/slack/web/api/endpoints/reminders.rb +5 -5
  144. data/lib/slack/web/api/endpoints/rtm.rb +0 -23
  145. data/lib/slack/web/api/endpoints/search.rb +3 -3
  146. data/lib/slack/web/api/endpoints/team.rb +13 -1
  147. data/lib/slack/web/api/endpoints/tooling_tokens.rb +1 -1
  148. data/lib/slack/web/api/endpoints/usergroups.rb +5 -5
  149. data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -3
  150. data/lib/slack/web/api/endpoints/users.rb +4 -4
  151. data/lib/slack/web/api/endpoints/users_admin.rb +2 -2
  152. data/lib/slack/web/api/endpoints/users_profile.rb +1 -1
  153. data/lib/slack/web/api/endpoints/views.rb +16 -11
  154. data/lib/slack/web/api/endpoints/workflows.rb +4 -4
  155. data/lib/slack/web/api/endpoints.rb +12 -0
  156. data/lib/slack/web/api/errors.rb +146 -8
  157. data/lib/slack/web/api/mixins/conversations.id.rb +1 -1
  158. data/lib/slack/web/api/mixins/users.id.rb +1 -1
  159. data/lib/slack/web/api/mixins/users.search.rb +2 -1
  160. data/lib/slack/web/api/patches/{chat.1.patch → chat.attachments-blocks.patch} +13 -14
  161. data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
  162. data/lib/slack/web/api/patches/views.view-json.patch +55 -0
  163. data/lib/slack/web/api/templates/command.erb +18 -12
  164. data/lib/slack/web/api/templates/method.erb +1 -1
  165. data/lib/slack/web/config.rb +2 -2
  166. data/lib/slack/web/faraday/connection.rb +4 -4
  167. data/lib/slack/web/faraday/request.rb +2 -0
  168. data/lib/slack/web/faraday/response/raise_error.rb +2 -10
  169. data/lib/slack/web/faraday/response/wrap_error.rb +1 -1
  170. data/lib/slack-ruby-client.rb +2 -1
  171. data/lib/tasks/real_time.rake +44 -24
  172. data/lib/tasks/web.rake +9 -8
  173. data/slack-ruby-client.gemspec +5 -14
  174. data/spec/fixtures/slack/web/rtm_connect.yml +85 -1
  175. data/spec/integration/integration_spec.rb +1 -1
  176. data/spec/slack/events/config_spec.rb +2 -0
  177. data/spec/slack/events/request_spec.rb +5 -1
  178. data/spec/slack/messages/formatting_spec.rb +10 -0
  179. data/spec/slack/real_time/api/message_spec.rb +1 -1
  180. data/spec/slack/real_time/api/ping_spec.rb +1 -1
  181. data/spec/slack/real_time/api/typing_spec.rb +1 -1
  182. data/spec/slack/real_time/client_spec.rb +91 -127
  183. data/spec/slack/real_time/event_handlers/bot_spec.rb +19 -17
  184. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +1 -1
  185. data/spec/slack/real_time/event_handlers/im_spec.rb +30 -27
  186. data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +35 -27
  187. data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +27 -23
  188. data/spec/slack/real_time/event_handlers/team_spec.rb +7 -8
  189. data/spec/slack/real_time/event_handlers/user_spec.rb +6 -5
  190. data/spec/slack/real_time/stores/store_spec.rb +50 -0
  191. data/spec/slack/slack_spec.rb +5 -4
  192. data/spec/slack/version_spec.rb +1 -1
  193. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +5 -0
  194. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
  195. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +31 -0
  196. data/spec/slack/web/api/endpoints/admin_roles_spec.rb +30 -0
  197. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  198. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  199. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +45 -17
  200. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +6 -2
  201. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +33 -16
  202. data/spec/slack/web/api/endpoints/files_spec.rb +13 -0
  203. data/spec/slack/web/api/endpoints/functions_workflows_steps_responses_spec.rb +13 -0
  204. data/spec/slack/web/api/endpoints/functions_workflows_steps_spec.rb +13 -0
  205. data/spec/slack/web/api/mixins/conversations_spec.rb +2 -0
  206. data/spec/slack/web/api/mixins/users_spec.rb +2 -0
  207. data/spec/slack/web/api/pagination/cursor_spec.rb +11 -7
  208. data/spec/slack/web/client_spec.rb +39 -11
  209. data/spec/slack/web/faraday/response/raise_error_spec.rb +1 -1
  210. data/spec/support/real_time/connected_client.rb +1 -1
  211. data/spec/support/real_time/loaded_client.rb +120 -0
  212. metadata +45 -197
  213. data/.travis.yml +0 -29
  214. data/bin/commands/admin_conversations_whitelist.rb +0 -37
  215. data/bin/commands/apps_permissions.rb +0 -23
  216. data/bin/commands/apps_permissions_resources.rb +0 -15
  217. data/bin/commands/apps_permissions_scopes.rb +0 -13
  218. data/bin/commands/apps_permissions_users.rb +0 -26
  219. data/bin/commands/channels.rb +0 -23
  220. data/bin/commands/groups.rb +0 -14
  221. data/bin/commands/im.rb +0 -6
  222. data/bin/commands/mpim.rb +0 -6
  223. data/bin/commands.rb +0 -66
  224. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +0 -64
  225. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -36
  226. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -31
  227. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -21
  228. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -50
  229. data/lib/slack/web/api/endpoints/channels.rb +0 -25
  230. data/lib/slack/web/api/endpoints/groups.rb +0 -13
  231. data/lib/slack/web/api/endpoints/im.rb +0 -13
  232. data/lib/slack/web/api/endpoints/mpim.rb +0 -13
  233. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  234. data/lib/slack/web/api/patches/views.1.view-json.patch +0 -40
  235. data/lib/slack/web/api/patches/views.1.views-published.patch +0 -16
  236. data/lib/slack/web/api/templates/commands.erb +0 -6
  237. data/spec/fixtures/slack/web/rtm_start.yml +0 -815
  238. data/spec/slack/real_time/rtm_start_spec.rb +0 -14
  239. 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
- # Stores everything.
6
+ # Full store with initialization logic
6
7
  class Store < Base
7
- def self
8
- users[@self_id]
9
- end
10
-
11
- def team
12
- teams[@team_id]
13
- end
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 = { @team_id => Slack::RealTime::Models::Team.new(attrs.team) }
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 = { @self_id => Slack::RealTime::Models::User.new(attrs.self) }
26
- else
27
- @users = {}
33
+ @users[@self_id] = Models::User.new(attrs.self)
28
34
  end
29
35
 
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
33
- end
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
- @bots = {}
41
- attrs.bots&.each do |data|
42
- @bots[data.id] = Models::Bot.new(data)
43
- end
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
- @groups = {}
46
- attrs.groups&.each do |data|
47
- @groups[data.id] = Models::Group.new(data)
48
- end
50
+ def self
51
+ users[@self_id]
52
+ end
49
53
 
50
- @ims = {}
51
- attrs.ims&.each do |data|
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
- # An integration bot was added.
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
- bots[data.bot.id] = Models::Bot.new(data.bot)
69
+ bot = Models::Bot.new(data.bot)
70
+ bots[bot.id] = bot
153
71
  end
154
72
 
155
- # An integration bot was changed.
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 team channel was archived.
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 = channels[data.channel]
85
+ channel = public_channels[data.channel]
168
86
  channel.is_archived = true if channel
169
87
  end
170
88
 
171
- # A team channel was created.
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
- channels[channel.id] = channel
94
+ public_channels[channel.id] = channel
177
95
  end
178
96
 
179
- # A team channel was deleted.
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
- channels.delete(data.channel)
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 = channels[channel_id]
197
- if channel
198
- channel.merge!(data.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
- channels[channel_id] = Models::Channel.new(data.channel)
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 = channels[data.channel]
209
- channel.members.delete(self.self.id) if channel.key? :members
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 team channel was renamed.
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 = channels[data.channel.id]
222
- channel.name = data.channel.name if channel
148
+ channel = public_channels[data.channel.id]
149
+ channel&.merge!(data.channel)
223
150
  end
224
151
 
225
- # A team channel was unarchived.
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 = channels[data.channel]
156
+ channel = public_channels[data.channel]
230
157
  channel.is_archived = false if channel
231
158
  end
232
159
 
233
- # A team slash command has been added or changed.
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
- # on :dnd_updated do |data|
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 team member.
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
- # on :dnd_updated_user do |data|
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 team email domain has changed.
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 team custom emoji has been added or changed.
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| do
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
- # A private group was archived.
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 = groups[data.channel]
256
+ channel = private_channels[data.channel]
315
257
  channel.is_archived = true if channel
316
258
  end
317
259
 
318
- # You closed a group channel.
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
- groups[data.channel].is_open = false
264
+ channel = private_channels[data.channel]
265
+ channel.is_open = false if channel
323
266
  end
324
267
 
325
- # Bulk updates were made to a group's history.
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 group.
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
- groups[data.channel.id] = Models::Channel.new(data.channel)
284
+ channel = Models::Channel.new(data.channel)
285
+ private_channels[channel.id] = channel
335
286
  end
336
287
 
337
- # You left a private group.
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 = groups[data.channel]
342
- channel.members.delete(self.self.id) if channel&.key?(:members)
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 group read marker was updated.
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 opened a group channel.
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
- groups[data.channel].is_open = true
305
+ channel = private_channels[data.channel]
306
+ channel.is_open = true if channel
355
307
  end
356
308
 
357
- # A private group was renamed.
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 = groups[data.channel.id]
362
- channel.name = data.channel.name if channel
313
+ channel = private_channels[data.channel.id]
314
+ channel&.merge!(data.channel)
363
315
  end
364
316
 
365
- # A private group was unarchived.
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 = groups[data.channel]
321
+ channel = private_channels[data.channel]
370
322
  channel.is_archived = false if channel
371
323
  end
372
324
 
373
- # You closed a direct message channel.
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 direct message channel was created.
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
- ims[data.channel.id] = Models::Im.new(data.channel)
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 channel's history.
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 direct message channel.
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 team member's presence changed.
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
- # A team member has added an emoji reaction to an item.
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 team member removed an emoji reaction.
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 team member has starred an item.
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 team member removed a star.
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 user group has been added to the team.
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
- # You have been added to a user group.
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 user group.
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 user group has been updated or its members changed.
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 team domain has changed.
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 team member has joined.
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
- users[data.user.id] = Models::User.new(data.user)
545
+ user = Models::User.new(data.user)
546
+ users[user.id] = user
499
547
  end
500
548
 
501
- # The team is being migrated between servers.
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 team billing plan has changed.
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 team preference has been updated.
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
- # Team profile fields have been updated.
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
- # Team profile fields have been deleted.
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
- # Team profile fields have been reordered.
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 team name has changed.
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 team member's data has changed.
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
- users[data.user.id] = Models::User.new(data.user)
548
- end
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