slack-ruby-client 0.14.4 → 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 (352) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +23 -7
  4. data/.rubocop_todo.yml +104 -47
  5. data/.travis.yml +1 -5
  6. data/CHANGELOG.md +41 -2
  7. data/CONTRIBUTING.md +17 -6
  8. data/Dangerfile +2 -1
  9. data/Gemfile +2 -2
  10. data/README.md +94 -53
  11. data/Rakefile +1 -0
  12. data/UPGRADING.md +20 -2
  13. data/bin/commands.rb +30 -0
  14. data/bin/commands/admin_analytics.rb +15 -0
  15. data/bin/commands/admin_apps.rb +40 -0
  16. data/bin/commands/admin_apps_approved.rb +17 -0
  17. data/bin/commands/admin_apps_requests.rb +16 -0
  18. data/bin/commands/admin_apps_restricted.rb +17 -0
  19. data/bin/commands/admin_barriers.rb +47 -0
  20. data/bin/commands/admin_conversations.rb +169 -0
  21. data/bin/commands/admin_conversations_ekm.rb +17 -0
  22. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  23. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  24. data/bin/commands/admin_emoji.rb +54 -0
  25. data/bin/commands/admin_inviteRequests.rb +36 -0
  26. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  27. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  28. data/bin/commands/admin_teams.rb +27 -0
  29. data/bin/commands/admin_teams_admins.rb +16 -0
  30. data/bin/commands/admin_teams_owners.rb +16 -0
  31. data/bin/commands/admin_teams_settings.rb +64 -0
  32. data/bin/commands/admin_usergroups.rb +48 -0
  33. data/bin/commands/admin_users.rb +97 -0
  34. data/bin/commands/admin_users_session.rb +25 -2
  35. data/bin/commands/api.rb +3 -3
  36. data/bin/commands/apps.rb +3 -2
  37. data/bin/commands/apps_connections.rb +13 -0
  38. data/bin/commands/apps_event_authorizations.rb +16 -0
  39. data/bin/commands/apps_permissions.rb +5 -4
  40. data/bin/commands/apps_permissions_resources.rb +3 -2
  41. data/bin/commands/apps_permissions_scopes.rb +3 -2
  42. data/bin/commands/apps_permissions_users.rb +5 -4
  43. data/bin/commands/auth.rb +5 -4
  44. data/bin/commands/auth_teams.rb +16 -0
  45. data/bin/commands/bots.rb +4 -2
  46. data/bin/commands/calls.rb +52 -0
  47. data/bin/commands/calls_participants.rb +25 -0
  48. data/bin/commands/channels.rb +37 -33
  49. data/bin/commands/chat.rb +34 -33
  50. data/bin/commands/chat_scheduledMessages.rb +4 -2
  51. data/bin/commands/conversations.rb +50 -38
  52. data/bin/commands/dialog.rb +3 -2
  53. data/bin/commands/dnd.rb +10 -9
  54. data/bin/commands/emoji.rb +3 -2
  55. data/bin/commands/files.rb +16 -13
  56. data/bin/commands/files_comments.rb +3 -2
  57. data/bin/commands/files_remote.rb +78 -0
  58. data/bin/commands/groups.rb +38 -35
  59. data/bin/commands/im.rb +14 -13
  60. data/bin/commands/migration.rb +4 -2
  61. data/bin/commands/mpim.rb +14 -13
  62. data/bin/commands/oauth.rb +6 -5
  63. data/bin/commands/oauth_v2.rb +17 -0
  64. data/bin/commands/pins.rb +7 -10
  65. data/bin/commands/reactions.rb +11 -11
  66. data/bin/commands/reminders.rb +11 -10
  67. data/bin/commands/rtm.rb +5 -4
  68. data/bin/commands/search.rb +11 -7
  69. data/bin/commands/stars.rb +7 -6
  70. data/bin/commands/team.rb +12 -8
  71. data/bin/commands/team_profile.rb +3 -2
  72. data/bin/commands/usergroups.rb +17 -11
  73. data/bin/commands/usergroups_users.rb +7 -4
  74. data/bin/commands/users.rb +26 -23
  75. data/bin/commands/users_admin.rb +1 -0
  76. data/bin/commands/users_prefs.rb +1 -0
  77. data/bin/commands/users_profile.rb +6 -5
  78. data/bin/commands/views.rb +48 -0
  79. data/bin/commands/workflows.rb +38 -0
  80. data/bin/slack +1 -2
  81. data/examples/hi_real_time_and_web/Gemfile +1 -0
  82. data/examples/hi_real_time_and_web/hi.rb +7 -3
  83. data/examples/hi_real_time_async_async/Gemfile +1 -0
  84. data/examples/hi_real_time_async_async/hi.rb +6 -2
  85. data/examples/hi_web/Gemfile +1 -0
  86. data/examples/hi_web/hi.rb +1 -0
  87. data/examples/new_ticket/Gemfile +1 -0
  88. data/examples/new_ticket/new_ticket.rb +1 -0
  89. data/lib/slack-ruby-client.rb +6 -4
  90. data/lib/slack.rb +1 -0
  91. data/lib/slack/config.rb +1 -0
  92. data/lib/slack/events/config.rb +1 -0
  93. data/lib/slack/events/request.rb +8 -2
  94. data/lib/slack/logger.rb +6 -5
  95. data/lib/slack/messages/formatting.rb +1 -0
  96. data/lib/slack/messages/message.rb +1 -4
  97. data/lib/slack/real_time/api/message.rb +3 -1
  98. data/lib/slack/real_time/api/message_id.rb +1 -0
  99. data/lib/slack/real_time/api/ping.rb +5 -2
  100. data/lib/slack/real_time/api/typing.rb +3 -1
  101. data/lib/slack/real_time/client.rb +21 -13
  102. data/lib/slack/real_time/concurrency.rb +1 -2
  103. data/lib/slack/real_time/concurrency/async.rb +12 -6
  104. data/lib/slack/real_time/config.rb +9 -3
  105. data/lib/slack/real_time/models.rb +1 -0
  106. data/lib/slack/real_time/models/base.rb +1 -4
  107. data/lib/slack/real_time/models/bot.rb +1 -0
  108. data/lib/slack/real_time/models/channel.rb +1 -0
  109. data/lib/slack/real_time/models/group.rb +1 -0
  110. data/lib/slack/real_time/models/im.rb +1 -0
  111. data/lib/slack/real_time/models/team.rb +1 -0
  112. data/lib/slack/real_time/models/user.rb +1 -0
  113. data/lib/slack/real_time/socket.rb +16 -13
  114. data/lib/slack/real_time/stores.rb +1 -0
  115. data/lib/slack/real_time/stores/base.rb +4 -1
  116. data/lib/slack/real_time/stores/starter.rb +1 -0
  117. data/lib/slack/real_time/stores/store.rb +16 -25
  118. data/lib/slack/version.rb +2 -1
  119. data/lib/slack/web/api/endpoints.rb +60 -0
  120. data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
  121. data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
  122. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  123. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  124. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  125. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  126. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  127. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  128. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  129. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  130. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  131. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  132. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  133. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  134. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  135. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  136. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  137. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  138. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  139. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  140. data/lib/slack/web/api/endpoints/admin_users_session.rb +40 -1
  141. data/lib/slack/web/api/endpoints/api.rb +2 -3
  142. data/lib/slack/web/api/endpoints/apps.rb +2 -1
  143. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  144. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  145. data/lib/slack/web/api/endpoints/apps_permissions.rb +3 -2
  146. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +2 -1
  147. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +2 -1
  148. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +3 -2
  149. data/lib/slack/web/api/endpoints/auth.rb +3 -2
  150. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  151. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  152. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  153. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  154. data/lib/slack/web/api/endpoints/channels.rb +52 -31
  155. data/lib/slack/web/api/endpoints/chat.rb +31 -30
  156. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +5 -2
  157. data/lib/slack/web/api/endpoints/conversations.rb +55 -36
  158. data/lib/slack/web/api/endpoints/dialog.rb +2 -1
  159. data/lib/slack/web/api/endpoints/dnd.rb +5 -4
  160. data/lib/slack/web/api/endpoints/emoji.rb +2 -1
  161. data/lib/slack/web/api/endpoints/files.rb +13 -8
  162. data/lib/slack/web/api/endpoints/files_comments.rb +2 -1
  163. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  164. data/lib/slack/web/api/endpoints/groups.rb +39 -24
  165. data/lib/slack/web/api/endpoints/im.rb +17 -12
  166. data/lib/slack/web/api/endpoints/migration.rb +4 -1
  167. data/lib/slack/web/api/endpoints/mpim.rb +18 -13
  168. data/lib/slack/web/api/endpoints/oauth.rb +4 -6
  169. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  170. data/lib/slack/web/api/endpoints/pins.rb +7 -16
  171. data/lib/slack/web/api/endpoints/reactions.rb +14 -15
  172. data/lib/slack/web/api/endpoints/reminders.rb +6 -5
  173. data/lib/slack/web/api/endpoints/rtm.rb +3 -2
  174. data/lib/slack/web/api/endpoints/search.rb +10 -3
  175. data/lib/slack/web/api/endpoints/stars.rb +6 -7
  176. data/lib/slack/web/api/endpoints/team.rb +11 -5
  177. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  178. data/lib/slack/web/api/endpoints/usergroups.rb +16 -5
  179. data/lib/slack/web/api/endpoints/usergroups_users.rb +7 -2
  180. data/lib/slack/web/api/endpoints/users.rb +18 -21
  181. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  182. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  183. data/lib/slack/web/api/endpoints/users_profile.rb +4 -3
  184. data/lib/slack/web/api/endpoints/views.rb +97 -0
  185. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  186. data/lib/slack/web/api/error.rb +1 -0
  187. data/lib/slack/web/api/errors.rb +850 -0
  188. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  189. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  190. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  191. data/lib/slack/web/api/mixins.rb +2 -0
  192. data/lib/slack/web/api/mixins/channels.id.rb +2 -3
  193. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  194. data/lib/slack/web/api/mixins/groups.id.rb +2 -3
  195. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  196. data/lib/slack/web/api/mixins/users.id.rb +2 -3
  197. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  198. data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +29 -26
  199. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  200. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  201. data/lib/slack/web/api/templates/command.erb +1 -0
  202. data/lib/slack/web/api/templates/commands.erb +1 -0
  203. data/lib/slack/web/api/templates/endpoints.erb +2 -0
  204. data/lib/slack/web/api/templates/errors.erb +20 -0
  205. data/lib/slack/web/api/templates/method.erb +5 -1
  206. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  207. data/lib/slack/web/client.rb +2 -1
  208. data/lib/slack/web/config.rb +3 -0
  209. data/lib/slack/web/faraday/connection.rb +24 -20
  210. data/lib/slack/web/faraday/request.rb +1 -0
  211. data/lib/slack/web/faraday/response/raise_error.rb +25 -6
  212. data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
  213. data/lib/slack/web/pagination/cursor.rb +3 -2
  214. data/lib/slack_ruby_client.rb +1 -0
  215. data/lib/tasks/git.rake +1 -0
  216. data/lib/tasks/real_time.rake +13 -5
  217. data/lib/tasks/update.rake +1 -0
  218. data/lib/tasks/web.rake +34 -10
  219. data/screenshots/create-app.png +0 -0
  220. data/slack-ruby-client.gemspec +6 -3
  221. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  222. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  223. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  224. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  225. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  226. data/spec/integration/integration_spec.rb +16 -17
  227. data/spec/slack/config_spec.rb +2 -0
  228. data/spec/slack/events/config_spec.rb +8 -4
  229. data/spec/slack/events/request_spec.rb +74 -40
  230. data/spec/slack/messages/formatting_spec.rb +25 -13
  231. data/spec/slack/real_time/api/message_spec.rb +6 -1
  232. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  233. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  234. data/spec/slack/real_time/client_spec.rb +153 -38
  235. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  236. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  237. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  238. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  239. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  240. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  241. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  242. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  243. data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
  244. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  245. data/spec/slack/real_time/store_spec.rb +2 -1
  246. data/spec/slack/slack_spec.rb +37 -5
  247. data/spec/slack/version_spec.rb +2 -1
  248. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  249. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  250. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  251. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  252. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
  253. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  254. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  255. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  256. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  257. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  258. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  259. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  260. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  261. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  262. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  263. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  264. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  265. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  266. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  267. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +9 -0
  268. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  269. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  270. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  271. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  272. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  273. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  274. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  275. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  276. data/spec/slack/web/api/endpoints/apps_spec.rb +3 -2
  277. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  278. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  279. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  280. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  281. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/conversations_spec.rb +21 -12
  283. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  284. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  285. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +80 -25
  286. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  287. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  288. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  289. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  290. data/spec/slack/web/api/endpoints/dnd_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  292. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -2
  293. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  294. data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
  295. data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
  296. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  297. data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
  298. data/spec/slack/web/api/endpoints/oauth_spec.rb +4 -14
  299. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  300. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  301. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  302. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  303. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  304. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  305. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  306. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  307. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  308. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  309. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  310. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  311. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  312. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  314. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  315. data/spec/slack/web/api/error_spec.rb +4 -2
  316. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  317. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  318. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  319. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  320. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  321. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  322. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  323. data/spec/slack/web/client_spec.rb +171 -18
  324. data/spec/slack/web/faraday/response/raise_error_spec.rb +47 -12
  325. data/spec/spec_helper.rb +2 -1
  326. data/spec/support/queue_with_timeout.rb +1 -0
  327. data/spec/support/real_time/concurrency/mock.rb +1 -0
  328. data/spec/support/real_time/connected_client.rb +9 -3
  329. data/spec/support/real_time/event.rb +1 -0
  330. data/spec/support/token.rb +1 -0
  331. data/spec/support/vcr.rb +5 -0
  332. metadata +190 -46
  333. data/examples/hi_real_time/Gemfile +0 -5
  334. data/examples/hi_real_time/hi.gif +0 -0
  335. data/examples/hi_real_time/hi.rb +0 -37
  336. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  337. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  338. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  339. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  340. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  341. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  342. data/lib/slack/real_time/concurrency/celluloid.rb +0 -136
  343. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -82
  344. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  345. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  346. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  347. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  348. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -15
  349. data/screenshots/register-bot.png +0 -0
  350. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -111
  351. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -49
  352. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,45 @@ module Slack
6
7
  module Endpoints
7
8
  module AdminUsersSession
8
9
  #
9
- # This method wipes a user session, leaving the user unauthenticated. The user's Slack client will reset its local cache.
10
+ # Revoke a single session for a user. The user will be forced to login to Slack.
11
+ #
12
+ # @option options [Object] :session_id
13
+ # ID of the session to invalidate.
14
+ # @option options [Object] :team_id
15
+ # ID of the workspace that the session belongs to.
16
+ # @see https://api.slack.com/methods/admin.users.session.invalidate
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users.session/admin.users.session.invalidate.json
18
+ def admin_users_session_invalidate(options = {})
19
+ throw ArgumentError.new('Required arguments :session_id missing') if options[:session_id].nil?
20
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
21
+ post('admin.users.session.invalidate', options)
22
+ end
23
+
24
+ #
25
+ # List active user sessions for an organization
26
+ #
27
+ # @option options [Object] :cursor
28
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
29
+ # @option options [Object] :limit
30
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
31
+ # @option options [Object] :team_id
32
+ # The ID of the workspace you'd like active sessions for. If you pass a team_id, you'll need to pass a user_id as well.
33
+ # @option options [Object] :user_id
34
+ # The ID of user you'd like active sessions for. If you pass a user_id, you'll need to pass a team_id as well.
35
+ # @see https://api.slack.com/methods/admin.users.session.list
36
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users.session/admin.users.session.list.json
37
+ def admin_users_session_list(options = {})
38
+ if block_given?
39
+ Pagination::Cursor.new(self, :admin_users_session_list, options).each do |page|
40
+ yield page
41
+ end
42
+ else
43
+ post('admin.users.session.list', options)
44
+ end
45
+ end
46
+
47
+ #
48
+ # Wipes all valid sessions on all devices for a given user
10
49
  #
11
50
  # @option options [Object] :user_id
12
51
  # The ID of the user to wipe sessions for.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,12 +7,10 @@ module Slack
6
7
  module Endpoints
7
8
  module Api
8
9
  #
9
- # This method helps you test your calling code.
10
+ # Checks API calling code.
10
11
  #
11
12
  # @option options [Object] :error
12
13
  # Error response to return.
13
- # @option options [Object] :foo
14
- # example property to return.
15
14
  # @see https://api.slack.com/methods/api.test
16
15
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/api/api.test.json
17
16
  def api_test(options = {})
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module Apps
8
9
  #
9
- # This method uninstalls an app. Unlike auth.revoke, which revokes a single token, this method revokes all tokens associated with a single installation of an app.
10
+ # Uninstalls your app from a workspace.
10
11
  #
11
12
  # @option options [Object] :client_id
12
13
  # Issued when you created your application.
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AppsConnections
9
+ #
10
+ # Generate a temporary Socket Mode WebSocket URL that your app can connect to in order to receive events and interactive payloads over,
11
+ #
12
+ # @see https://api.slack.com/methods/apps.connections.open
13
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.connections/apps.connections.open.json
14
+ def apps_connections_open(options = {})
15
+ post('apps.connections.open', options)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AppsEventAuthorizations
9
+ #
10
+ # Get a list of authorizations for the given event context. Each authorization represents an app installation that the event is visible to.
11
+ #
12
+ # @option options [Object] :event_context
13
+ # .
14
+ # @option options [Object] :cursor
15
+ # .
16
+ # @option options [Object] :limit
17
+ # .
18
+ # @see https://api.slack.com/methods/apps.event.authorizations.list
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.event.authorizations/apps.event.authorizations.list.json
20
+ def apps_event_authorizations_list(options = {})
21
+ throw ArgumentError.new('Required arguments :event_context missing') if options[:event_context].nil?
22
+ if block_given?
23
+ Pagination::Cursor.new(self, :apps_event_authorizations_list, options).each do |page|
24
+ yield page
25
+ end
26
+ else
27
+ post('apps.event.authorizations.list', options)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module AppsPermissions
8
9
  #
9
- # This feature was exclusive to our workspace apps developer preview. The preview has now ended, but fan-favorite features such as token rotation and the Conversations API will become available to classic Slack apps over the coming months.
10
+ # Returns list of permissions this app has on a team.
10
11
  #
11
12
  # @see https://api.slack.com/methods/apps.permissions.info
12
13
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.permissions/apps.permissions.info.json
@@ -15,7 +16,7 @@ module Slack
15
16
  end
16
17
 
17
18
  #
18
- # This feature was exclusive to our workspace apps developer preview. The preview has now ended, but fan-favorite features such as token rotation and the Conversations API will become available to classic Slack apps over the coming months.
19
+ # Allows an app to request additional scopes
19
20
  #
20
21
  # @option options [Object] :scopes
21
22
  # A comma separated list of scopes to request for.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module AppsPermissionsResources
8
9
  #
9
- # This feature was exclusive to our workspace apps developer preview. The preview has now ended, but fan-favorite features such as token rotation and the Conversations API will become available to classic Slack apps over the coming months.
10
+ # Returns list of resource grants this app has on a team.
10
11
  #
11
12
  # @option options [Object] :cursor
12
13
  # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module AppsPermissionsScopes
8
9
  #
9
- # This feature was exclusive to our workspace apps developer preview. The preview has now ended, but fan-favorite features such as token rotation and the Conversations API will become available to classic Slack apps over the coming months.
10
+ # Returns list of scopes this app has on a team.
10
11
  #
11
12
  # @see https://api.slack.com/methods/apps.permissions.scopes.list
12
13
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.permissions.scopes/apps.permissions.scopes.list.json
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module AppsPermissionsUsers
8
9
  #
9
- # This feature was exclusive to our workspace apps developer preview. The preview has now ended, but fan-favorite features such as token rotation and the Conversations API will become available to classic Slack apps over the coming months.
10
+ # Returns list of user grants and corresponding scopes this app has on a team.
10
11
  #
11
12
  # @option options [Object] :cursor
12
13
  # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
@@ -25,7 +26,7 @@ module Slack
25
26
  end
26
27
 
27
28
  #
28
- # This feature was exclusive to our workspace apps developer preview. The preview has now ended, but fan-favorite features such as token rotation and the Conversations API will become available to classic Slack apps over the coming months.
29
+ # Enables an app to trigger a permissions modal to grant an app access to a user access scope.
29
30
  #
30
31
  # @option options [Object] :scopes
31
32
  # A comma separated list of user scopes to request for.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module Auth
8
9
  #
9
- # This method revokes an access token. Use it when you no longer need a token. For example, with a Sign In With Slack app, call this to log a user out.
10
+ # Revokes a token.
10
11
  #
11
12
  # @option options [Object] :test
12
13
  # Setting this parameter to 1 triggers a testing mode where the specified token will not actually be revoked.
@@ -17,7 +18,7 @@ module Slack
17
18
  end
18
19
 
19
20
  #
20
- # This method checks authentication and tells "you" who you are, even if you might be a bot.
21
+ # Checks authentication & identity.
21
22
  #
22
23
  # @see https://api.slack.com/methods/auth.test
23
24
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/auth/auth.test.json
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AuthTeams
9
+ #
10
+ # List the workspaces a token can access.
11
+ #
12
+ # @option options [Object] :cursor
13
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
14
+ # @option options [Object] :include_icon
15
+ # Whether to return icon paths for each workspace. An icon path represents a URI pointing to the image signifying the workspace.
16
+ # @option options [Object] :limit
17
+ # The maximum number of workspaces to return. Must be a positive integer no larger than 1000.
18
+ # @see https://api.slack.com/methods/auth.teams.list
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/auth.teams/auth.teams.list.json
20
+ def auth_teams_list(options = {})
21
+ if block_given?
22
+ Pagination::Cursor.new(self, :auth_teams_list, options).each do |page|
23
+ yield page
24
+ end
25
+ else
26
+ post('auth.teams.list', options)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,10 +7,12 @@ module Slack
6
7
  module Endpoints
7
8
  module Bots
8
9
  #
9
- # This method returns extended information about a bot user.
10
+ # Gets information about a bot user.
10
11
  #
11
12
  # @option options [Object] :bot
12
13
  # Bot user to get info on.
14
+ # @option options [Object] :team_id
15
+ # encoded team id or enterprise id where the bot exists, required if org token is used.
13
16
  # @see https://api.slack.com/methods/bots.info
14
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/bots/bots.info.json
15
18
  def bots_info(options = {})
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module Calls
9
+ #
10
+ # Registers a new Call.
11
+ #
12
+ # @option options [Object] :external_unique_id
13
+ # An ID supplied by the 3rd-party Call provider. It must be unique across all Calls from that service.
14
+ # @option options [Object] :join_url
15
+ # The URL required for a client to join the Call.
16
+ # @option options [Object] :created_by
17
+ # The valid Slack user ID of the user who created this Call. When this method is called with a user token, the created_by field is optional and defaults to the authed user of the token. Otherwise, the field is required.
18
+ # @option options [Object] :date_start
19
+ # Call start time in UTC UNIX timestamp format.
20
+ # @option options [Object] :desktop_app_join_url
21
+ # When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL.
22
+ # @option options [Object] :external_display_id
23
+ # An optional, human-readable ID supplied by the 3rd-party Call provider. If supplied, this ID will be displayed in the Call object.
24
+ # @option options [Object] :title
25
+ # The name of the Call.
26
+ # @option options [Object] :users
27
+ # The list of users to register as participants in the Call. Read more on how to specify users here.
28
+ # @see https://api.slack.com/methods/calls.add
29
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.add.json
30
+ def calls_add(options = {})
31
+ throw ArgumentError.new('Required arguments :external_unique_id missing') if options[:external_unique_id].nil?
32
+ throw ArgumentError.new('Required arguments :join_url missing') if options[:join_url].nil?
33
+ post('calls.add', options)
34
+ end
35
+
36
+ #
37
+ # Ends a Call.
38
+ #
39
+ # @option options [Object] :id
40
+ # id returned when registering the call using the calls.add method.
41
+ # @option options [Object] :duration
42
+ # Call duration in seconds.
43
+ # @see https://api.slack.com/methods/calls.end
44
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.end.json
45
+ def calls_end(options = {})
46
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
47
+ post('calls.end', options)
48
+ end
49
+
50
+ #
51
+ # Returns information about a Call.
52
+ #
53
+ # @option options [Object] :id
54
+ # id of the Call returned by the calls.add method.
55
+ # @see https://api.slack.com/methods/calls.info
56
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.info.json
57
+ def calls_info(options = {})
58
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
59
+ post('calls.info', options)
60
+ end
61
+
62
+ #
63
+ # Updates information about a Call.
64
+ #
65
+ # @option options [Object] :id
66
+ # id returned by the calls.add method.
67
+ # @option options [Object] :desktop_app_join_url
68
+ # When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL.
69
+ # @option options [Object] :join_url
70
+ # The URL required for a client to join the Call.
71
+ # @option options [Object] :title
72
+ # The name of the Call.
73
+ # @see https://api.slack.com/methods/calls.update
74
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.update.json
75
+ def calls_update(options = {})
76
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
77
+ post('calls.update', options)
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module CallsParticipants
9
+ #
10
+ # Registers new participants added to a Call.
11
+ #
12
+ # @option options [Object] :id
13
+ # id returned by the calls.add method.
14
+ # @option options [Object] :users
15
+ # The list of users to add as participants in the Call. Read more on how to specify users here.
16
+ # @see https://api.slack.com/methods/calls.participants.add
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls.participants/calls.participants.add.json
18
+ def calls_participants_add(options = {})
19
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
20
+ throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
21
+ post('calls.participants.add', options)
22
+ end
23
+
24
+ #
25
+ # Registers participants removed from a Call.
26
+ #
27
+ # @option options [Object] :id
28
+ # id returned by the calls.add method.
29
+ # @option options [Object] :users
30
+ # The list of users to remove as participants in the Call. Read more on how to specify users here.
31
+ # @see https://api.slack.com/methods/calls.participants.remove
32
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls.participants/calls.participants.remove.json
33
+ def calls_participants_remove(options = {})
34
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
35
+ throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
36
+ post('calls.participants.remove', options)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,7 +7,7 @@ module Slack
6
7
  module Endpoints
7
8
  module Channels
8
9
  #
9
- # This method archives a channel.
10
+ # Archives a channel.
10
11
  #
11
12
  # @option options [channel] :channel
12
13
  # Channel to archive.
@@ -14,21 +15,25 @@ module Slack
14
15
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.archive.json
15
16
  def channels_archive(options = {})
16
17
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
17
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
18
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
19
+ logger.warn('channels.archive: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.archive.')
18
20
  post('channels.archive', options)
19
21
  end
20
22
 
21
23
  #
22
- # This method is used to create a channel.
24
+ # Creates a channel.
23
25
  #
24
26
  # @option options [Object] :name
25
27
  # Name of channel to create.
28
+ # @option options [Object] :team_id
29
+ # encoded team id to create the channel in, required if org token is used.
26
30
  # @option options [Object] :validate
27
31
  # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
28
32
  # @see https://api.slack.com/methods/channels.create
29
33
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.create.json
30
34
  def channels_create(options = {})
31
35
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
36
+ logger.warn('channels.create: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.create.')
32
37
  post('channels.create', options)
33
38
  end
34
39
 
@@ -40,13 +45,13 @@ module Slack
40
45
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/channels/channels.delete.json
41
46
  def channels_delete(options = {})
42
47
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
43
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
48
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
44
49
  logger.warn('The channels.delete method is undocumented.')
45
50
  post('channels.delete', options)
46
51
  end
47
52
 
48
53
  #
49
- # This method returns a portion of message events from the specified public channel.
54
+ # Fetches history of messages and events from a channel.
50
55
  #
51
56
  # @option options [channel] :channel
52
57
  # Channel to fetch history for.
@@ -62,12 +67,13 @@ module Slack
62
67
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.history.json
63
68
  def channels_history(options = {})
64
69
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
65
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
70
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
71
+ logger.warn('channels.history: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.history.')
66
72
  post('channels.history', options)
67
73
  end
68
74
 
69
75
  #
70
- # This method returns information about a team channel.
76
+ # Gets information about a channel.
71
77
  #
72
78
  # @option options [channel] :channel
73
79
  # Channel to get info on.
@@ -77,12 +83,13 @@ module Slack
77
83
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.info.json
78
84
  def channels_info(options = {})
79
85
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
80
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
86
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
87
+ logger.warn('channels.info: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.info.')
81
88
  post('channels.info', options)
82
89
  end
83
90
 
84
91
  #
85
- # This method is used to invite a user to a channel. The calling user must be a member of the channel.
92
+ # Invites a user to a channel.
86
93
  #
87
94
  # @option options [channel] :channel
88
95
  # Channel to invite user to.
@@ -93,28 +100,31 @@ module Slack
93
100
  def channels_invite(options = {})
94
101
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
95
102
  throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
96
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
103
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
97
104
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
105
+ logger.warn('channels.invite: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.invite.')
98
106
  post('channels.invite', options)
99
107
  end
100
108
 
101
109
  #
102
- # This method is used to join a channel. If the channel does not exist, it is
103
- # created.
110
+ # Joins a channel, creating it if needed.
104
111
  #
105
112
  # @option options [Object] :name
106
113
  # Name of channel to join.
114
+ # @option options [Object] :team_id
115
+ # encoded team id to list channels in, required if org token is used.
107
116
  # @option options [Object] :validate
108
117
  # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
109
118
  # @see https://api.slack.com/methods/channels.join
110
119
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.join.json
111
120
  def channels_join(options = {})
112
121
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
122
+ logger.warn('channels.join: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.join.')
113
123
  post('channels.join', options)
114
124
  end
115
125
 
116
126
  #
117
- # This method allows a user to remove another member from a team channel.
127
+ # Removes a user from a channel.
118
128
  #
119
129
  # @option options [channel] :channel
120
130
  # Channel to remove user from.
@@ -125,13 +135,14 @@ module Slack
125
135
  def channels_kick(options = {})
126
136
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
127
137
  throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
128
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
138
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
129
139
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
140
+ logger.warn('channels.kick: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.kick.')
130
141
  post('channels.kick', options)
131
142
  end
132
143
 
133
144
  #
134
- # This method is used to leave a channel.
145
+ # Leaves a channel.
135
146
  #
136
147
  # @option options [channel] :channel
137
148
  # Channel to leave.
@@ -139,12 +150,13 @@ module Slack
139
150
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.leave.json
140
151
  def channels_leave(options = {})
141
152
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
142
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
153
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
154
+ logger.warn('channels.leave: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.leave.')
143
155
  post('channels.leave', options)
144
156
  end
145
157
 
146
158
  #
147
- # Don't use this method. Use conversations.list instead.
159
+ # Lists all channels in a Slack team.
148
160
  #
149
161
  # @option options [Object] :cursor
150
162
  # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
@@ -154,9 +166,12 @@ module Slack
154
166
  # Exclude the members collection from each channel.
155
167
  # @option options [Object] :limit
156
168
  # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
169
+ # @option options [Object] :team_id
170
+ # encoded team id to list channels in, required if org token is used.
157
171
  # @see https://api.slack.com/methods/channels.list
158
172
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.list.json
159
173
  def channels_list(options = {})
174
+ logger.warn('channels.list: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.list, users.conversations.')
160
175
  if block_given?
161
176
  Pagination::Cursor.new(self, :channels_list, options).each do |page|
162
177
  yield page
@@ -167,23 +182,24 @@ module Slack
167
182
  end
168
183
 
169
184
  #
170
- # This method moves the read cursor in a channel.
185
+ # Sets the read cursor in a channel.
171
186
  #
172
187
  # @option options [channel] :channel
173
- # Channel to set reading cursor in.
188
+ # Channel or conversation to set the read cursor for.
174
189
  # @option options [timestamp] :ts
175
- # Timestamp of the most recently seen message.
190
+ # Unique identifier of message you want marked as most recently seen in this conversation.
176
191
  # @see https://api.slack.com/methods/channels.mark
177
192
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.mark.json
178
193
  def channels_mark(options = {})
179
194
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
180
195
  throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
181
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
196
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
197
+ logger.warn('channels.mark: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.mark.')
182
198
  post('channels.mark', options)
183
199
  end
184
200
 
185
201
  #
186
- # This method renames a team channel.
202
+ # Renames a channel.
187
203
  #
188
204
  # @option options [channel] :channel
189
205
  # Channel to rename.
@@ -196,12 +212,13 @@ module Slack
196
212
  def channels_rename(options = {})
197
213
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
198
214
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
199
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
215
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
216
+ logger.warn('channels.rename: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.rename.')
200
217
  post('channels.rename', options)
201
218
  end
202
219
 
203
220
  #
204
- # This method returns an entire thread (a message plus all the messages in reply to it).
221
+ # Retrieve a thread of messages posted to a channel
205
222
  #
206
223
  # @option options [channel] :channel
207
224
  # Channel to fetch thread from.
@@ -212,12 +229,13 @@ module Slack
212
229
  def channels_replies(options = {})
213
230
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
214
231
  throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
215
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
232
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
233
+ logger.warn('channels.replies: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.replies.')
216
234
  post('channels.replies', options)
217
235
  end
218
236
 
219
237
  #
220
- # This method is used to change the purpose of a channel. The calling user must be a member of the channel.
238
+ # Sets the purpose for a channel.
221
239
  #
222
240
  # @option options [channel] :channel
223
241
  # Channel to set the purpose of.
@@ -230,12 +248,13 @@ module Slack
230
248
  def channels_setPurpose(options = {})
231
249
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
232
250
  throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
233
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
251
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
252
+ logger.warn('channels.setPurpose: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.setPurpose.')
234
253
  post('channels.setPurpose', options)
235
254
  end
236
255
 
237
256
  #
238
- # This method is used to change the topic of a channel. The calling user must be a member of the channel.
257
+ # Sets the topic for a channel.
239
258
  #
240
259
  # @option options [channel] :channel
241
260
  # Channel to set the topic of.
@@ -246,12 +265,13 @@ module Slack
246
265
  def channels_setTopic(options = {})
247
266
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
248
267
  throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
249
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
268
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
269
+ logger.warn('channels.setTopic: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.setTopic.')
250
270
  post('channels.setTopic', options)
251
271
  end
252
272
 
253
273
  #
254
- # This method unarchives a channel. The calling user is added to the channel.
274
+ # Unarchives a channel.
255
275
  #
256
276
  # @option options [channel] :channel
257
277
  # Channel to unarchive.
@@ -259,7 +279,8 @@ module Slack
259
279
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.unarchive.json
260
280
  def channels_unarchive(options = {})
261
281
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
262
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
282
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
283
+ logger.warn('channels.unarchive: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.unarchive.')
263
284
  post('channels.unarchive', options)
264
285
  end
265
286
  end