slack-ruby-client 0.7.9 → 0.16.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 (358) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +32 -1
  5. data/.rubocop_todo.yml +98 -49
  6. data/.travis.yml +10 -14
  7. data/CHANGELOG.md +172 -24
  8. data/CONTRIBUTING.md +17 -6
  9. data/Dangerfile +2 -0
  10. data/Gemfile +10 -4
  11. data/LICENSE.md +1 -1
  12. data/README.md +276 -54
  13. data/RELEASING.md +19 -11
  14. data/Rakefile +2 -1
  15. data/UPGRADING.md +84 -2
  16. data/bin/commands.rb +43 -1
  17. data/bin/commands/admin_analytics.rb +15 -0
  18. data/bin/commands/admin_apps.rb +40 -0
  19. data/bin/commands/admin_apps_approved.rb +17 -0
  20. data/bin/commands/admin_apps_requests.rb +16 -0
  21. data/bin/commands/admin_apps_restricted.rb +17 -0
  22. data/bin/commands/admin_barriers.rb +47 -0
  23. data/bin/commands/admin_conversations.rb +169 -0
  24. data/bin/commands/admin_conversations_ekm.rb +17 -0
  25. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  26. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  27. data/bin/commands/admin_emoji.rb +54 -0
  28. data/bin/commands/admin_inviteRequests.rb +36 -0
  29. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  30. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  31. data/bin/commands/admin_teams.rb +27 -0
  32. data/bin/commands/admin_teams_admins.rb +16 -0
  33. data/bin/commands/admin_teams_owners.rb +16 -0
  34. data/bin/commands/admin_teams_settings.rb +64 -0
  35. data/bin/commands/admin_usergroups.rb +48 -0
  36. data/bin/commands/admin_users.rb +97 -0
  37. data/bin/commands/admin_users_session.rb +38 -0
  38. data/bin/commands/api.rb +3 -3
  39. data/bin/commands/apps.rb +15 -0
  40. data/bin/commands/apps_connections.rb +13 -0
  41. data/bin/commands/apps_event_authorizations.rb +16 -0
  42. data/bin/commands/apps_permissions.rb +23 -0
  43. data/bin/commands/apps_permissions_resources.rb +15 -0
  44. data/bin/commands/apps_permissions_scopes.rb +13 -0
  45. data/bin/commands/apps_permissions_users.rb +26 -0
  46. data/bin/commands/auth.rb +5 -4
  47. data/bin/commands/auth_teams.rb +16 -0
  48. data/bin/commands/bots.rb +4 -2
  49. data/bin/commands/calls.rb +52 -0
  50. data/bin/commands/calls_participants.rb +25 -0
  51. data/bin/commands/channels.rb +64 -43
  52. data/bin/commands/chat.rb +114 -24
  53. data/bin/commands/chat_scheduledMessages.rb +19 -0
  54. data/bin/commands/conversations.rb +196 -0
  55. data/bin/commands/dialog.rb +15 -0
  56. data/bin/commands/dnd.rb +9 -8
  57. data/bin/commands/emoji.rb +3 -2
  58. data/bin/commands/files.rb +45 -30
  59. data/bin/commands/files_comments.rb +3 -24
  60. data/bin/commands/files_remote.rb +78 -0
  61. data/bin/commands/groups.rb +53 -53
  62. data/bin/commands/im.rb +17 -13
  63. data/bin/commands/migration.rb +16 -0
  64. data/bin/commands/mpim.rb +16 -13
  65. data/bin/commands/oauth.rb +17 -2
  66. data/bin/commands/oauth_v2.rb +17 -0
  67. data/bin/commands/pins.rb +7 -10
  68. data/bin/commands/reactions.rb +17 -15
  69. data/bin/commands/reminders.rb +11 -10
  70. data/bin/commands/rtm.rb +19 -4
  71. data/bin/commands/search.rb +15 -11
  72. data/bin/commands/stars.rb +11 -8
  73. data/bin/commands/team.rb +15 -10
  74. data/bin/commands/team_profile.rb +3 -2
  75. data/bin/commands/usergroups.rb +22 -16
  76. data/bin/commands/usergroups_users.rb +7 -4
  77. data/bin/commands/users.rb +65 -37
  78. data/bin/commands/users_admin.rb +29 -0
  79. data/bin/commands/users_prefs.rb +13 -0
  80. data/bin/commands/users_profile.rb +8 -7
  81. data/bin/commands/views.rb +48 -0
  82. data/bin/commands/workflows.rb +38 -0
  83. data/bin/slack +3 -4
  84. data/examples/hi_real_time_and_web/Gemfile +1 -0
  85. data/examples/hi_real_time_and_web/hi.rb +8 -4
  86. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
  87. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
  88. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +13 -8
  89. data/examples/hi_web/Gemfile +1 -0
  90. data/examples/hi_web/hi.rb +2 -1
  91. data/examples/new_ticket/Gemfile +1 -0
  92. data/examples/new_ticket/new_ticket.rb +2 -1
  93. data/lib/slack-ruby-client.rb +40 -26
  94. data/lib/slack.rb +1 -0
  95. data/lib/slack/config.rb +1 -0
  96. data/lib/slack/events/config.rb +32 -0
  97. data/lib/slack/events/request.rb +70 -0
  98. data/lib/slack/logger.rb +6 -5
  99. data/lib/slack/messages/formatting.rb +4 -4
  100. data/lib/slack/messages/message.rb +2 -6
  101. data/lib/slack/real_time/api/message.rb +3 -1
  102. data/lib/slack/real_time/api/message_id.rb +1 -0
  103. data/lib/slack/real_time/api/ping.rb +5 -2
  104. data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
  105. data/lib/slack/real_time/api/typing.rb +3 -1
  106. data/lib/slack/real_time/client.rb +113 -32
  107. data/lib/slack/real_time/concurrency.rb +2 -2
  108. data/lib/slack/real_time/concurrency/async.rb +140 -0
  109. data/lib/slack/real_time/config.rb +20 -12
  110. data/lib/slack/real_time/models.rb +8 -7
  111. data/lib/slack/real_time/models/base.rb +2 -6
  112. data/lib/slack/real_time/models/bot.rb +1 -0
  113. data/lib/slack/real_time/models/channel.rb +1 -0
  114. data/lib/slack/real_time/models/group.rb +1 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/team.rb +1 -0
  117. data/lib/slack/real_time/models/user.rb +1 -0
  118. data/lib/slack/real_time/socket.rb +46 -17
  119. data/lib/slack/real_time/stores.rb +4 -3
  120. data/lib/slack/real_time/stores/base.rb +5 -3
  121. data/lib/slack/real_time/stores/starter.rb +113 -72
  122. data/lib/slack/real_time/stores/store.rb +131 -88
  123. data/lib/slack/version.rb +2 -1
  124. data/lib/slack/web/api/endpoints.rb +110 -26
  125. data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
  126. data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
  127. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  130. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  131. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  132. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  133. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  135. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  136. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  137. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  139. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  140. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  141. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  143. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  144. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  145. data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
  146. data/lib/slack/web/api/endpoints/api.rb +3 -4
  147. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  148. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  149. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  150. data/lib/slack/web/api/endpoints/apps_permissions.rb +36 -0
  151. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
  152. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
  153. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +5 -4
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bots.rb +5 -2
  157. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  158. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  159. data/lib/slack/web/api/endpoints/channels.rb +105 -49
  160. data/lib/slack/web/api/endpoints/chat.rb +221 -40
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +332 -0
  163. data/lib/slack/web/api/endpoints/dialog.rb +33 -0
  164. data/lib/slack/web/api/endpoints/dnd.rb +11 -9
  165. data/lib/slack/web/api/endpoints/emoji.rb +3 -2
  166. data/lib/slack/web/api/endpoints/files.rb +75 -38
  167. data/lib/slack/web/api/endpoints/files_comments.rb +3 -38
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/groups.rb +76 -53
  170. data/lib/slack/web/api/endpoints/im.rb +38 -21
  171. data/lib/slack/web/api/endpoints/migration.rb +28 -0
  172. data/lib/slack/web/api/endpoints/mpim.rb +37 -22
  173. data/lib/slack/web/api/endpoints/oauth.rb +25 -4
  174. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  175. data/lib/slack/web/api/endpoints/pins.rb +10 -19
  176. data/lib/slack/web/api/endpoints/presence.rb +1 -1
  177. data/lib/slack/web/api/endpoints/reactions.rb +37 -28
  178. data/lib/slack/web/api/endpoints/reminders.rb +11 -10
  179. data/lib/slack/web/api/endpoints/rtm.rb +28 -7
  180. data/lib/slack/web/api/endpoints/search.rb +21 -14
  181. data/lib/slack/web/api/endpoints/stars.rb +24 -15
  182. data/lib/slack/web/api/endpoints/team.rb +21 -13
  183. data/lib/slack/web/api/endpoints/team_profile.rb +3 -2
  184. data/lib/slack/web/api/endpoints/usergroups.rb +33 -22
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -4
  186. data/lib/slack/web/api/endpoints/users.rb +78 -29
  187. data/lib/slack/web/api/endpoints/users_admin.rb +49 -0
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +21 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +11 -10
  190. data/lib/slack/web/api/endpoints/views.rb +97 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/error.rb +2 -8
  193. data/lib/slack/web/api/errors.rb +850 -0
  194. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +29 -0
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +24 -0
  197. data/lib/slack/web/api/mixins.rb +6 -4
  198. data/lib/slack/web/api/mixins/channels.id.rb +6 -7
  199. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  200. data/lib/slack/web/api/mixins/groups.id.rb +6 -7
  201. data/lib/slack/web/api/mixins/ids.id.rb +24 -0
  202. data/lib/slack/web/api/mixins/users.id.rb +6 -7
  203. data/lib/slack/web/api/mixins/users.search.rb +39 -36
  204. data/lib/slack/web/api/patches/chat.1.patch +72 -0
  205. data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
  206. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  207. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  208. data/lib/slack/web/api/templates/command.erb +5 -3
  209. data/lib/slack/web/api/templates/commands.erb +2 -1
  210. data/lib/slack/web/api/templates/endpoints.erb +5 -3
  211. data/lib/slack/web/api/templates/errors.erb +20 -0
  212. data/lib/slack/web/api/templates/method.erb +26 -4
  213. data/lib/slack/web/api/templates/method_spec.erb +3 -2
  214. data/lib/slack/web/client.rb +2 -1
  215. data/lib/slack/web/config.rb +21 -10
  216. data/lib/slack/web/faraday/connection.rb +25 -16
  217. data/lib/slack/web/faraday/request.rb +2 -0
  218. data/lib/slack/web/faraday/response/raise_error.rb +23 -1
  219. data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
  220. data/lib/slack/web/pagination/cursor.rb +52 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +2 -1
  223. data/lib/tasks/real_time.rake +16 -6
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +38 -10
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +9 -6
  228. data/spec/fixtures/slack/web/429_error.yml +2 -0
  229. data/spec/fixtures/slack/web/503_error.yml +14 -0
  230. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  231. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  234. data/spec/fixtures/slack/web/paginated_users_list.yml +181 -0
  235. data/spec/fixtures/slack/web/rtm_connect.yml +70 -0
  236. data/spec/fixtures/slack/web/rtm_start.yml +1 -1
  237. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  238. data/spec/integration/integration_spec.rb +116 -48
  239. data/spec/slack/config_spec.rb +2 -0
  240. data/spec/slack/events/config_spec.rb +33 -0
  241. data/spec/slack/events/request_spec.rb +183 -0
  242. data/spec/slack/messages/formatting_spec.rb +25 -14
  243. data/spec/slack/real_time/api/message_spec.rb +6 -1
  244. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  245. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  246. data/spec/slack/real_time/client_spec.rb +462 -134
  247. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +3 -1
  248. data/spec/slack/real_time/event_handlers/bot_spec.rb +6 -3
  249. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  250. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  251. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  252. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  253. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
  254. data/spec/slack/real_time/event_handlers/user_spec.rb +5 -2
  255. data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
  256. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  257. data/spec/slack/real_time/store_spec.rb +2 -1
  258. data/spec/slack/slack_spec.rb +39 -7
  259. data/spec/slack/version_spec.rb +2 -1
  260. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  261. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  262. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  263. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
  265. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  266. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  268. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  269. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  270. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  271. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  273. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  274. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  275. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  276. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  277. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  278. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  279. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
  280. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  281. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  283. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  284. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +8 -0
  285. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +16 -0
  287. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +19 -0
  288. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  289. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  290. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  292. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  293. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  294. data/spec/slack/web/api/endpoints/conversations_spec.rb +109 -0
  295. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +13 -4
  296. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  297. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
  298. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
  299. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +21 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  302. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  303. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  304. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  305. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  306. data/spec/slack/web/api/endpoints/files_spec.rb +17 -5
  307. data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
  309. data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
  310. data/spec/slack/web/api/endpoints/oauth_spec.rb +5 -4
  311. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  312. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  314. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  315. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  317. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  319. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  320. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  322. data/spec/slack/web/api/endpoints/users_admin_spec.rb +18 -0
  323. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
  324. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  325. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  326. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  327. data/spec/slack/web/api/error_spec.rb +5 -3
  328. data/spec/slack/web/api/errors/slack_error_spec.rb +38 -0
  329. data/spec/slack/web/api/mixins/channels_spec.rb +24 -12
  330. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  331. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  332. data/spec/slack/web/api/mixins/groups_spec.rb +24 -12
  333. data/spec/slack/web/api/mixins/users_spec.rb +30 -17
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +100 -0
  335. data/spec/slack/web/client_spec.rb +215 -14
  336. data/spec/slack/web/faraday/response/raise_error_spec.rb +85 -0
  337. data/spec/spec_helper.rb +8 -1
  338. data/spec/support/queue_with_timeout.rb +6 -5
  339. data/spec/support/real_time/concurrency/mock.rb +2 -2
  340. data/spec/support/real_time/connected_client.rb +13 -2
  341. data/spec/support/real_time/event.rb +1 -0
  342. data/spec/support/token.rb +1 -0
  343. data/spec/support/vcr.rb +6 -1
  344. metadata +280 -55
  345. data/examples/hi_real_time/Gemfile +0 -5
  346. data/examples/hi_real_time/hi.gif +0 -0
  347. data/examples/hi_real_time/hi.rb +0 -37
  348. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  349. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  350. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
  351. data/lib/slack/real_time/concurrency/celluloid.rb +0 -113
  352. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  353. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  354. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  355. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -20
  356. data/screenshots/register-bot.png +0 -0
  357. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -31
  358. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Stores
@@ -26,97 +27,137 @@ module Slack
26
27
  @users = {}
27
28
  end
28
29
 
29
- attrs.users.each do |data|
30
+ attrs.users&.each do |data|
30
31
  user = Models::User.new(data)
31
32
  @users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
32
- end if attrs.users
33
+ end
33
34
 
34
35
  @channels = {}
35
- attrs.channels.each do |data|
36
+ attrs.channels&.each do |data|
36
37
  @channels[data.id] = Models::Channel.new(data)
37
- end if attrs.channels
38
+ end
38
39
 
39
40
  @bots = {}
40
- attrs.bots.each do |data|
41
+ attrs.bots&.each do |data|
41
42
  @bots[data.id] = Models::Bot.new(data)
42
- end if attrs.bots
43
+ end
43
44
 
44
45
  @groups = {}
45
- attrs.groups.each do |data|
46
+ attrs.groups&.each do |data|
46
47
  @groups[data.id] = Models::Group.new(data)
47
- end if attrs.groups
48
+ end
48
49
 
49
50
  @ims = {}
50
- attrs.ims.each do |data|
51
+ attrs.ims&.each do |data|
51
52
  @ims[data.id] = Models::Im.new(data)
52
- end if attrs.ims
53
+ end
53
54
  end
54
55
 
55
56
  ### RealTime Events
56
57
 
58
+ # An enterprise grid migration has started on an external workspace..
59
+ # @see https://api.slack.com/events/external_org_migration_started
60
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
61
+ # on :external_org_migration_started do |data|
62
+
63
+ # An enterprise grid migration has finished on an external workspace..
64
+ # @see https://api.slack.com/events/external_org_migration_finished
65
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
66
+ # on :external_org_migration_finished do |data|
67
+
68
+ # A private channel was deleted.
69
+ # @see https://api.slack.com/events/group_deleted
70
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
71
+ # on :group_deleted do |data|
72
+
73
+ # Determine the current presence status for a list of users.
74
+ # @see https://api.slack.com/events/presence_query
75
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_query.json
76
+ # on :presence_query do |data|
77
+
78
+ # The membership of an existing User Group has changed.
79
+ # @see https://api.slack.com/events/subteam_members_changed
80
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_members_changed.json
81
+ # on :subteam_members_changed do |data|
82
+
83
+ # Subscribe to presence events for the specified users.
84
+ # @see https://api.slack.com/events/presence_sub
85
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_sub.json
86
+ # on :presence_sub do |data|
87
+
88
+ # A user left a public or private channel.
89
+ # @see https://api.slack.com/events/member_left_channel
90
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_left_channel.json
91
+ # on :member_left_channel do |data|
92
+
93
+ # A user joined a public or private channel.
94
+ # @see https://api.slack.com/events/member_joined_channel
95
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_joined_channel.json
96
+ # on :member_joined_channel do |data|
97
+
57
98
  # The server intends to close the connection soon..
58
99
  # @see https://api.slack.com/events/goodbye
59
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/goodbye.json
100
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/goodbye.json
60
101
  # on :goodbye do |data|
61
102
 
62
103
  # Verifies ownership of an Events API Request URL.
63
104
  # @see https://api.slack.com/events/url_verification
64
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/url_verification.json
105
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/url_verification.json
65
106
  # on :url_verification do |data|
66
107
 
67
108
  # A message was posted in a multiparty direct message channel.
68
109
  # @see https://api.slack.com/events/message.mpim
69
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.mpim.json
110
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.mpim.json
70
111
  # on :message.mpim do |data|
71
112
 
72
113
  # A message was posted in a direct message channel.
73
114
  # @see https://api.slack.com/events/message.im
74
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.im.json
115
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.im.json
75
116
  # on :message.im do |data|
76
117
 
77
118
  # A message was posted to a private channel.
78
119
  # @see https://api.slack.com/events/message.groups
79
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.groups.json
120
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.groups.json
80
121
  # on :message.groups do |data|
81
122
 
82
123
  # A message was posted to a channel.
83
124
  # @see https://api.slack.com/events/message.channels
84
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.channels.json
125
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.channels.json
85
126
  # on :message.channels do |data|
86
127
 
87
128
  # A direct message read marker was updated.
88
129
  # @see https://api.slack.com/events/im_marked
89
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_marked.json
130
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
90
131
  # on :im_marked do |data|
91
132
 
92
133
  # Bulk updates were made to a DM channel's history.
93
134
  # @see https://api.slack.com/events/im_history_changed
94
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_history_changed.json
135
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
95
136
  # on :im_history_changed do |data|
96
137
 
97
138
  # The list of accounts a user is signed into has changed.
98
139
  # @see https://api.slack.com/events/accounts_changed
99
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/accounts_changed.json
140
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/accounts_changed.json
100
141
  # on :accounts_changed do |data|
101
142
 
102
143
  # An integration bot was added.
103
144
  # @see https://api.slack.com/events/bot_added
104
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/bot_added.json
145
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_added.json
105
146
  on :bot_added do |data|
106
147
  bots[data.bot.id] = Models::Bot.new(data.bot)
107
148
  end
108
149
 
109
150
  # An integration bot was changed.
110
151
  # @see https://api.slack.com/events/bot_changed
111
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/bot_changed.json
152
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
112
153
  on :bot_changed do |data|
113
154
  bot = bots[data.bot.id]
114
- bot.merge!(data.bot) if bot
155
+ bot&.merge!(data.bot)
115
156
  end
116
157
 
117
158
  # A team channel was archived.
118
159
  # @see https://api.slack.com/events/channel_archive
119
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_archive.json
160
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_archive.json
120
161
  on :channel_archive do |data|
121
162
  channel = channels[data.channel]
122
163
  channel.is_archived = true if channel
@@ -124,7 +165,7 @@ module Slack
124
165
 
125
166
  # A team channel was created.
126
167
  # @see https://api.slack.com/events/channel_created
127
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_created.json
168
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_created.json
128
169
  on :channel_created do |data|
129
170
  channel = Models::Channel.new(data.channel)
130
171
  channels[channel.id] = channel
@@ -132,19 +173,19 @@ module Slack
132
173
 
133
174
  # A team channel was deleted.
134
175
  # @see https://api.slack.com/events/channel_deleted
135
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_deleted.json
176
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_deleted.json
136
177
  on :channel_deleted do |data|
137
178
  channels.delete(data.channel)
138
179
  end
139
180
 
140
181
  # Bulk updates were made to a channel's history.
141
182
  # @see https://api.slack.com/events/channel_history_changed
142
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_history_changed.json
183
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_history_changed.json
143
184
  # on :channel_history_changed do |data|
144
185
 
145
186
  # You joined a channel.
146
187
  # @see https://api.slack.com/events/channel_joined
147
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_joined.json
188
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_joined.json
148
189
  on :channel_joined do |data|
149
190
  channel_id = data.channel.id
150
191
  channel = channels[channel_id]
@@ -157,7 +198,7 @@ module Slack
157
198
 
158
199
  # You left a channel.
159
200
  # @see https://api.slack.com/events/channel_left
160
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_left.json
201
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_left.json
161
202
  on :channel_left do |data|
162
203
  channel = channels[data.channel]
163
204
  channel.members.delete(self.self.id) if channel.key? :members
@@ -165,12 +206,12 @@ module Slack
165
206
 
166
207
  # Your channel read marker was updated.
167
208
  # @see https://api.slack.com/events/channel_marked
168
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_marked.json
209
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_marked.json
169
210
  # on :channel_marked do |data|
170
211
 
171
212
  # A team channel was renamed.
172
213
  # @see https://api.slack.com/events/channel_rename
173
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_rename.json
214
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_rename.json
174
215
  on :channel_rename do |data|
175
216
  channel = channels[data.channel.id]
176
217
  channel.name = data.channel.name if channel
@@ -178,7 +219,7 @@ module Slack
178
219
 
179
220
  # A team channel was unarchived.
180
221
  # @see https://api.slack.com/events/channel_unarchive
181
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_unarchive.json
222
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_unarchive.json
182
223
  on :channel_unarchive do |data|
183
224
  channel = channels[data.channel]
184
225
  channel.is_archived = false if channel
@@ -186,84 +227,84 @@ module Slack
186
227
 
187
228
  # A team slash command has been added or changed.
188
229
  # @see https://api.slack.com/events/commands_changed
189
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/commands_changed.json
230
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/commands_changed.json
190
231
  # on :commands_changed do |data|
191
232
 
192
233
  # Do not Disturb settings changed for the current user.
193
234
  # @see https://api.slack.com/events/dnd_updated
194
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/dnd_updated.json
235
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated.json
195
236
  # on :dnd_updated do |data|
196
237
 
197
238
  # Do not Disturb settings changed for a team member.
198
239
  # @see https://api.slack.com/events/dnd_updated_user
199
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/dnd_updated_user.json
240
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated_user.json
200
241
  # on :dnd_updated_user do |data|
201
242
 
202
243
  # The team email domain has changed.
203
244
  # @see https://api.slack.com/events/email_domain_changed
204
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/email_domain_changed.json
245
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/email_domain_changed.json
205
246
  on :email_domain_changed do |data|
206
247
  team.email_domain = data.email_domain
207
248
  end
208
249
 
209
250
  # A team custom emoji has been added or changed.
210
251
  # @see https://api.slack.com/events/emoji_changed
211
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/emoji_changed.json
252
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/emoji_changed.json
212
253
  # on :emoji_changed do |data|
213
254
 
214
255
  # A file was changed.
215
256
  # @see https://api.slack.com/events/file_change
216
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_change.json
257
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_change.json
217
258
  # on :file_change do |data|
218
259
 
219
260
  # A file comment was added.
220
261
  # @see https://api.slack.com/events/file_comment_added
221
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_comment_added.json
262
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_added.json
222
263
  # on :file_comment_added do |data| do
223
264
 
224
265
  # A file comment was deleted.
225
266
  # @see https://api.slack.com/events/file_comment_deleted
226
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_comment_deleted.json
267
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_deleted.json
227
268
  # on :file_comment_deleted do |data|
228
269
 
229
270
  # A file comment was edited.
230
271
  # @see https://api.slack.com/events/file_comment_edited
231
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_comment_edited.json
272
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_edited.json
232
273
  # on :file_comment_edited do |data|
233
274
 
234
275
  # A file was created.
235
276
  # @see https://api.slack.com/events/file_created
236
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_created.json
277
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_created.json
237
278
  # on :file_created do |data|
238
279
 
239
280
  # A file was deleted.
240
281
  # @see https://api.slack.com/events/file_deleted
241
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_deleted.json
282
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_deleted.json
242
283
  # on :file_deleted do |data|
243
284
 
244
285
  # A file was made private.
245
286
  # @see https://api.slack.com/events/file_private
246
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_private.json
287
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_private.json
247
288
  # on :file_private do |data|
248
289
 
249
290
  # A file was made public.
250
291
  # @see https://api.slack.com/events/file_public
251
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_public.json
292
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_public.json
252
293
  # on :file_public do |data|
253
294
 
254
295
  # A file was shared.
255
296
  # @see https://api.slack.com/events/file_shared
256
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_shared.json
297
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_shared.json
257
298
  # on :file_shared do |data|
258
299
 
259
300
  # A file was unshared.
260
301
  # @see https://api.slack.com/events/file_unshared
261
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_unshared.json
302
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_unshared.json
262
303
  # on :file_unshared do |data|
263
304
 
264
305
  # A private group was archived.
265
306
  # @see https://api.slack.com/events/group_archive
266
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_archive.json
307
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_archive.json
267
308
  on :group_archive do |data|
268
309
  channel = groups[data.channel]
269
310
  channel.is_archived = true if channel
@@ -271,46 +312,46 @@ module Slack
271
312
 
272
313
  # You closed a group channel.
273
314
  # @see https://api.slack.com/events/group_close
274
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_close.json
315
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_close.json
275
316
  on :group_close do |data|
276
317
  groups[data.channel].is_open = false
277
318
  end
278
319
 
279
320
  # Bulk updates were made to a group's history.
280
321
  # @see https://api.slack.com/events/group_history_changed
281
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_history_changed.json
322
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_history_changed.json
282
323
  # on :group_history_changed do |data|
283
324
 
284
325
  # You joined a private group.
285
326
  # @see https://api.slack.com/events/group_joined
286
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_joined.json
327
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_joined.json
287
328
  on :group_joined do |data|
288
329
  groups[data.channel.id] = Models::Channel.new(data.channel)
289
330
  end
290
331
 
291
332
  # You left a private group.
292
333
  # @see https://api.slack.com/events/group_left
293
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_left.json
334
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
294
335
  on :group_left do |data|
295
336
  channel = groups[data.channel]
296
- channel.members.delete(self.self.id) if channel && channel.key?(:members)
337
+ channel.members.delete(self.self.id) if channel&.key?(:members)
297
338
  end
298
339
 
299
340
  # A private group read marker was updated.
300
341
  # @see https://api.slack.com/events/group_marked
301
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_marked.json
342
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_marked.json
302
343
  # on :group_marked do |data|
303
344
 
304
345
  # You opened a group channel.
305
346
  # @see https://api.slack.com/events/group_open
306
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_open.json
347
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_open.json
307
348
  on :group_open do |data|
308
349
  groups[data.channel].is_open = true
309
350
  end
310
351
 
311
352
  # A private group was renamed.
312
353
  # @see https://api.slack.com/events/group_rename
313
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_rename.json
354
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_rename.json
314
355
  on :group_rename do |data|
315
356
  channel = groups[data.channel.id]
316
357
  channel.name = data.channel.name if channel
@@ -318,7 +359,7 @@ module Slack
318
359
 
319
360
  # A private group was unarchived.
320
361
  # @see https://api.slack.com/events/group_unarchive
321
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_unarchive.json
362
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_unarchive.json
322
363
  on :group_unarchive do |data|
323
364
  channel = groups[data.channel]
324
365
  channel.is_archived = false if channel
@@ -326,57 +367,59 @@ module Slack
326
367
 
327
368
  # You closed a direct message channel.
328
369
  # @see https://api.slack.com/events/im_close
329
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_close.json
370
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
330
371
  on :im_close do |data|
331
- return unless ims && ims.key?(data.channel)
372
+ return unless ims&.key?(data.channel)
373
+
332
374
  ims[data.channel].is_open = false
333
375
  end
334
376
 
335
377
  # A direct message channel was created.
336
378
  # @see https://api.slack.com/events/im_created
337
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_created.json
379
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_created.json
338
380
  on :im_created do |data|
339
381
  ims[data.channel.id] = Models::Im.new(data.channel)
340
382
  end
341
383
 
342
384
  # Bulk updates were made to a DM channel's history.
343
385
  # @see https://api.slack.com/events/im_history_changed
344
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_history_changed.json
386
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
345
387
  # on :im_history_changed do |data|
346
388
 
347
389
  # A direct message read marker was updated.
348
390
  # @see https://api.slack.com/events/im_marked
349
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_marked.json
391
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
350
392
  # on :im_marked do |data|
351
393
 
352
394
  # You opened a direct message channel.
353
395
  # @see https://api.slack.com/events/im_open
354
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_open.json
396
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
355
397
  on :im_open do |data|
356
- return unless ims && ims.key?(data.channel)
398
+ return unless ims&.key?(data.channel)
399
+
357
400
  ims[data.channel].is_open = true
358
401
  end
359
402
 
360
403
  # You manually updated your presence.
361
404
  # @see https://api.slack.com/events/manual_presence_change
362
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/manual_presence_change.json
405
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/manual_presence_change.json
363
406
  on :manual_presence_change do |data|
364
407
  self.self.presence = data.presence
365
408
  end
366
409
 
367
410
  # A pin was added to a channel.
368
411
  # @see https://api.slack.com/events/pin_added
369
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/pin_added.json
412
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_added.json
370
413
  # on :pin_added do |data|
371
414
 
372
415
  # A pin was removed from a channel.
373
416
  # @see https://api.slack.com/events/pin_removed
374
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/pin_removed.json
417
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_removed.json
375
418
  # on :pin_removed do |data|
376
419
 
377
420
  # You have updated your preferences.
378
421
  # @see https://api.slack.com/events/pref_change
379
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/pref_change.json
422
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pref_change.json
380
423
  on :pref_change do |data|
381
424
  self.self.prefs ||= {}
382
425
  self.self.prefs[data.name] = data.value
@@ -384,7 +427,7 @@ module Slack
384
427
 
385
428
  # A team member's presence changed.
386
429
  # @see https://api.slack.com/events/presence_change
387
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/presence_change.json
430
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_change.json
388
431
  on :presence_change do |data|
389
432
  user = users[data.user]
390
433
  user.presence = data.presence if user
@@ -392,52 +435,52 @@ module Slack
392
435
 
393
436
  # A team member has added an emoji reaction to an item.
394
437
  # @see https://api.slack.com/events/reaction_added
395
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/reaction_added.json
438
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_added.json
396
439
  # on :reaction_added do |data|
397
440
 
398
441
  # A team member removed an emoji reaction.
399
442
  # @see https://api.slack.com/events/reaction_removed
400
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/reaction_removed.json
443
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_removed.json
401
444
  # on :reaction_removed do |data|
402
445
 
403
446
  # Experimental.
404
447
  # @see https://api.slack.com/events/reconnect_url
405
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/reconnect_url.json
448
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reconnect_url.json
406
449
  # on :reconnect_url do |data|
407
450
 
408
451
  # A team member has starred an item.
409
452
  # @see https://api.slack.com/events/star_added
410
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/star_added.json
453
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_added.json
411
454
  # on :star_added do |data|
412
455
 
413
456
  # A team member removed a star.
414
457
  # @see https://api.slack.com/events/star_removed
415
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/star_removed.json
458
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_removed.json
416
459
  # on :star_removed do |data|
417
460
 
418
461
  # A user group has been added to the team.
419
462
  # @see https://api.slack.com/events/subteam_created
420
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_created.json
463
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_created.json
421
464
  # on :subteam_created do |data|
422
465
 
423
466
  # You have been added to a user group.
424
467
  # @see https://api.slack.com/events/subteam_self_added
425
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_self_added.json
468
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_added.json
426
469
  # on :subteam_self_added do |data|
427
470
 
428
471
  # You have been removed from a user group.
429
472
  # @see https://api.slack.com/events/subteam_self_removed
430
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_self_removed.json
473
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_removed.json
431
474
  # on :subteam_self_removed do |data|
432
475
 
433
476
  # An existing user group has been updated or its members changed.
434
477
  # @see https://api.slack.com/events/subteam_updated
435
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_updated.json
478
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_updated.json
436
479
  # on :subteam_updated do |data|
437
480
 
438
481
  # The team domain has changed.
439
482
  # @see https://api.slack.com/events/team_domain_change
440
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_domain_change.json
483
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_domain_change.json
441
484
  on :team_domain_change do |data|
442
485
  team.url = data.url
443
486
  team.domain = data.domain
@@ -445,26 +488,26 @@ module Slack
445
488
 
446
489
  # A new team member has joined.
447
490
  # @see https://api.slack.com/events/team_join
448
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_join.json
491
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_join.json
449
492
  on :team_join do |data|
450
493
  users[data.user.id] = Models::User.new(data.user)
451
494
  end
452
495
 
453
496
  # The team is being migrated between servers.
454
497
  # @see https://api.slack.com/events/team_migration_started
455
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_migration_started.json
498
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_migration_started.json
456
499
  # on :team_migration_started do |data|
457
500
 
458
501
  # The team billing plan has changed.
459
502
  # @see https://api.slack.com/events/team_plan_change
460
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_plan_change.json
503
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_plan_change.json
461
504
  on :team_plan_change do |data|
462
505
  team.plan = data.plan
463
506
  end
464
507
 
465
508
  # A team preference has been updated.
466
509
  # @see https://api.slack.com/events/team_pref_change
467
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_pref_change.json
510
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_pref_change.json
468
511
  on :team_pref_change do |data|
469
512
  team.prefs ||= {}
470
513
  team.prefs[data.name] = data.value
@@ -472,36 +515,36 @@ module Slack
472
515
 
473
516
  # Team profile fields have been updated.
474
517
  # @see https://api.slack.com/events/team_profile_change
475
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_change.json
518
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_change.json
476
519
  # on :team_profile_change do |data|
477
520
 
478
521
  # Team profile fields have been deleted.
479
522
  # @see https://api.slack.com/events/team_profile_delete
480
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_delete.json
523
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_delete.json
481
524
  # on :team_profile_delete do |data|
482
525
 
483
526
  # Team profile fields have been reordered.
484
527
  # @see https://api.slack.com/events/team_profile_reorder
485
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_reorder.json
528
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_reorder.json
486
529
  # on :team_profile_reorder do |data|
487
530
 
488
531
  # The team name has changed.
489
532
  # @see https://api.slack.com/events/team_rename
490
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_rename.json
533
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_rename.json
491
534
  on :team_rename do |data|
492
535
  team.name = data.name
493
536
  end
494
537
 
495
538
  # A team member's data has changed.
496
539
  # @see https://api.slack.com/events/user_change
497
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/user_change.json
540
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_change.json
498
541
  on :user_change do |data|
499
542
  users[data.user.id] = Models::User.new(data.user)
500
543
  end
501
544
 
502
545
  # A channel member is typing a message.
503
546
  # @see https://api.slack.com/events/user_typing
504
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/user_typing.json
547
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_typing.json
505
548
  # on :user_typing do |data|
506
549
  end
507
550
  end