slack-ruby-client 0.13.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +29 -5
  5. data/.rubocop_todo.yml +124 -44
  6. data/.travis.yml +5 -8
  7. data/CHANGELOG.md +92 -2
  8. data/CONTRIBUTING.md +19 -8
  9. data/Dangerfile +2 -0
  10. data/Gemfile +10 -5
  11. data/LICENSE.md +1 -1
  12. data/README.md +186 -49
  13. data/RELEASING.md +1 -1
  14. data/Rakefile +2 -1
  15. data/UPGRADING.md +72 -2
  16. data/bin/commands/admin_analytics.rb +16 -0
  17. data/bin/commands/admin_apps.rb +51 -0
  18. data/bin/commands/admin_apps_approved.rb +17 -0
  19. data/bin/commands/admin_apps_requests.rb +17 -0
  20. data/bin/commands/admin_apps_restricted.rb +17 -0
  21. data/bin/commands/admin_auth_policy.rb +39 -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 +98 -0
  37. data/bin/commands/admin_users_session.rb +78 -0
  38. data/bin/commands/api.rb +1 -1
  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_manifest.rb +51 -0
  43. data/bin/commands/apps_permissions.rb +1 -0
  44. data/bin/commands/apps_permissions_resources.rb +1 -0
  45. data/bin/commands/apps_permissions_scopes.rb +1 -0
  46. data/bin/commands/apps_permissions_users.rb +1 -0
  47. data/bin/commands/auth.rb +1 -0
  48. data/bin/commands/auth_teams.rb +16 -0
  49. data/bin/commands/bots.rb +2 -0
  50. data/bin/commands/calls.rb +52 -0
  51. data/bin/commands/calls_participants.rb +25 -0
  52. data/bin/commands/channels.rb +1 -153
  53. data/bin/commands/chat.rb +56 -12
  54. data/bin/commands/chat_scheduledMessages.rb +19 -0
  55. data/bin/commands/conversations.rb +75 -5
  56. data/bin/commands/dialog.rb +1 -0
  57. data/bin/commands/dnd.rb +6 -3
  58. data/bin/commands/emoji.rb +1 -0
  59. data/bin/commands/files.rb +10 -18
  60. data/bin/commands/files_comments.rb +1 -21
  61. data/bin/commands/files_remote.rb +78 -0
  62. data/bin/commands/groups.rb +1 -161
  63. data/bin/commands/im.rb +1 -62
  64. data/bin/commands/migration.rb +2 -0
  65. data/bin/commands/mpim.rb +1 -60
  66. data/bin/commands/oauth.rb +2 -14
  67. data/bin/commands/oauth_v2.rb +29 -0
  68. data/bin/commands/openid_connect.rb +27 -0
  69. data/bin/commands/pins.rb +3 -6
  70. data/bin/commands/reactions.rb +3 -3
  71. data/bin/commands/reminders.rb +7 -0
  72. data/bin/commands/rtm.rb +3 -2
  73. data/bin/commands/search.rb +6 -1
  74. data/bin/commands/stars.rb +8 -6
  75. data/bin/commands/team.rb +5 -0
  76. data/bin/commands/team_billing.rb +13 -0
  77. data/bin/commands/team_preferences.rb +13 -0
  78. data/bin/commands/team_profile.rb +1 -0
  79. data/bin/commands/tooling_tokens.rb +14 -0
  80. data/bin/commands/usergroups.rb +7 -1
  81. data/bin/commands/usergroups_users.rb +3 -0
  82. data/bin/commands/users.rb +6 -4
  83. data/bin/commands/users_admin.rb +1 -0
  84. data/bin/commands/users_prefs.rb +1 -0
  85. data/bin/commands/users_profile.rb +6 -5
  86. data/bin/commands/views.rb +48 -0
  87. data/bin/commands/workflows.rb +38 -0
  88. data/bin/commands.rb +38 -8
  89. data/bin/slack +2 -3
  90. data/examples/hi_real_time_and_web/Gemfile +1 -0
  91. data/examples/hi_real_time_and_web/hi.rb +7 -3
  92. data/examples/hi_real_time_async_async/Gemfile +1 -0
  93. data/examples/hi_real_time_async_async/hi.rb +6 -2
  94. data/examples/hi_web/Gemfile +1 -0
  95. data/examples/hi_web/hi.rb +1 -0
  96. data/examples/new_ticket/Gemfile +1 -0
  97. data/examples/new_ticket/new_ticket.rb +1 -0
  98. data/lib/slack/config.rb +2 -2
  99. data/lib/slack/events/config.rb +32 -0
  100. data/lib/slack/events/request.rb +72 -0
  101. data/lib/slack/logger.rb +6 -5
  102. data/lib/slack/messages/formatting.rb +1 -0
  103. data/lib/slack/messages/message.rb +1 -4
  104. data/lib/slack/real_time/api/message.rb +3 -1
  105. data/lib/slack/real_time/api/message_id.rb +1 -0
  106. data/lib/slack/real_time/api/ping.rb +5 -2
  107. data/lib/slack/real_time/api/typing.rb +3 -1
  108. data/lib/slack/real_time/client.rb +101 -32
  109. data/lib/slack/real_time/concurrency/async.rb +77 -6
  110. data/lib/slack/real_time/concurrency.rb +1 -2
  111. data/lib/slack/real_time/config.rb +6 -10
  112. data/lib/slack/real_time/models/base.rb +1 -4
  113. data/lib/slack/real_time/models/bot.rb +1 -0
  114. data/lib/slack/real_time/models/channel.rb +1 -0
  115. data/lib/slack/real_time/models/group.rb +1 -0
  116. data/lib/slack/real_time/models/im.rb +1 -0
  117. data/lib/slack/real_time/models/team.rb +1 -0
  118. data/lib/slack/real_time/models/user.rb +1 -0
  119. data/lib/slack/real_time/models.rb +1 -0
  120. data/lib/slack/real_time/socket.rb +45 -17
  121. data/lib/slack/real_time/stores/base.rb +5 -7
  122. data/lib/slack/real_time/stores/starter.rb +17 -3
  123. data/lib/slack/real_time/stores/store.rb +33 -25
  124. data/lib/slack/real_time/stores.rb +1 -0
  125. data/lib/slack/version.rb +2 -1
  126. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  127. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +35 -0
  130. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  131. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  132. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  133. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  135. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  136. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  137. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  139. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  140. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  141. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  143. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  144. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  145. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  146. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  147. data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
  148. data/lib/slack/web/api/endpoints/api.rb +2 -3
  149. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  150. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  151. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  152. data/lib/slack/web/api/endpoints/apps_manifest.rb +75 -0
  153. data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
  154. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +1 -0
  155. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +1 -0
  156. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +1 -0
  157. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  158. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  159. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  160. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  161. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  162. data/lib/slack/web/api/endpoints/channels.rb +2 -243
  163. data/lib/slack/web/api/endpoints/chat.rb +144 -47
  164. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  165. data/lib/slack/web/api/endpoints/conversations.rb +152 -41
  166. data/lib/slack/web/api/endpoints/dialog.rb +3 -2
  167. data/lib/slack/web/api/endpoints/dnd.rb +9 -4
  168. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  169. data/lib/slack/web/api/endpoints/files.rb +24 -29
  170. data/lib/slack/web/api/endpoints/files_comments.rb +2 -34
  171. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  172. data/lib/slack/web/api/endpoints/groups.rb +1 -253
  173. data/lib/slack/web/api/endpoints/im.rb +1 -101
  174. data/lib/slack/web/api/endpoints/migration.rb +5 -2
  175. data/lib/slack/web/api/endpoints/mpim.rb +1 -96
  176. data/lib/slack/web/api/endpoints/oauth.rb +7 -31
  177. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  178. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  179. data/lib/slack/web/api/endpoints/pins.rb +8 -15
  180. data/lib/slack/web/api/endpoints/reactions.rb +20 -19
  181. data/lib/slack/web/api/endpoints/reminders.rb +18 -5
  182. data/lib/slack/web/api/endpoints/rtm.rb +11 -10
  183. data/lib/slack/web/api/endpoints/search.rb +28 -13
  184. data/lib/slack/web/api/endpoints/stars.rb +14 -11
  185. data/lib/slack/web/api/endpoints/team.rb +13 -4
  186. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  187. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  188. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  189. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  190. data/lib/slack/web/api/endpoints/usergroups.rb +27 -16
  191. data/lib/slack/web/api/endpoints/usergroups_users.rb +10 -5
  192. data/lib/slack/web/api/endpoints/users.rb +21 -20
  193. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  194. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  195. data/lib/slack/web/api/endpoints/users_profile.rb +8 -7
  196. data/lib/slack/web/api/endpoints/views.rb +97 -0
  197. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  198. data/lib/slack/web/api/endpoints.rb +76 -18
  199. data/lib/slack/web/api/error.rb +1 -0
  200. data/lib/slack/web/api/errors/server_error.rb +37 -0
  201. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  202. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  203. data/lib/slack/web/api/errors.rb +1040 -0
  204. data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +4 -5
  205. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  206. data/lib/slack/web/api/mixins/users.id.rb +2 -3
  207. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  208. data/lib/slack/web/api/mixins.rb +2 -2
  209. data/lib/slack/web/api/patches/chat.1.patch +70 -0
  210. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  211. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  212. data/lib/slack/web/api/templates/command.erb +1 -0
  213. data/lib/slack/web/api/templates/commands.erb +1 -0
  214. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  215. data/lib/slack/web/api/templates/errors.erb +20 -0
  216. data/lib/slack/web/api/templates/method.erb +5 -1
  217. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  218. data/lib/slack/web/client.rb +2 -1
  219. data/lib/slack/web/config.rb +3 -0
  220. data/lib/slack/web/faraday/connection.rb +24 -20
  221. data/lib/slack/web/faraday/request.rb +3 -1
  222. data/lib/slack/web/faraday/response/raise_error.rb +21 -6
  223. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  224. data/lib/slack/web/pagination/cursor.rb +7 -7
  225. data/lib/slack-ruby-client.rb +10 -4
  226. data/lib/slack.rb +1 -0
  227. data/lib/slack_ruby_client.rb +1 -0
  228. data/lib/tasks/git.rake +1 -0
  229. data/lib/tasks/real_time.rake +15 -5
  230. data/lib/tasks/update.rake +1 -0
  231. data/lib/tasks/web.rake +39 -10
  232. data/screenshots/create-app.png +0 -0
  233. data/slack-ruby-client.gemspec +9 -6
  234. data/spec/fixtures/slack/web/429_error.yml +50 -54
  235. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  236. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  237. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  238. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  239. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  240. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  241. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  242. data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
  243. data/spec/fixtures/slack/web/rtm_start.yml +771 -60
  244. data/spec/fixtures/slack/web/users_info.yml +153 -69
  245. data/spec/fixtures/slack/web/users_list.yml +102 -41
  246. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  247. data/spec/integration/integration_spec.rb +115 -47
  248. data/spec/slack/config_spec.rb +2 -0
  249. data/spec/slack/events/config_spec.rb +33 -0
  250. data/spec/slack/events/request_spec.rb +184 -0
  251. data/spec/slack/messages/formatting_spec.rb +25 -13
  252. data/spec/slack/real_time/api/message_spec.rb +6 -1
  253. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  254. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  255. data/spec/slack/real_time/client_spec.rb +244 -50
  256. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  257. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  258. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  259. data/spec/slack/real_time/event_handlers/bot_spec.rb +3 -2
  260. data/spec/slack/real_time/event_handlers/channel_spec.rb +10 -7
  261. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  262. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  263. data/spec/slack/real_time/event_handlers/im_spec.rb +9 -8
  264. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  265. data/spec/slack/real_time/event_handlers/user_spec.rb +3 -2
  266. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  267. data/spec/slack/real_time/rtm_start_spec.rb +2 -1
  268. data/spec/slack/real_time/store_spec.rb +2 -1
  269. data/spec/slack/slack_spec.rb +40 -6
  270. data/spec/slack/version_spec.rb +2 -1
  271. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  272. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  273. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  274. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  275. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  276. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  277. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  278. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  279. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  280. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  281. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  282. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  283. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  284. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  285. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  286. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  287. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  288. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  289. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  290. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  291. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  292. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  293. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  294. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  295. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  296. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  297. data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → auth_teams_spec.rb} +2 -1
  298. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  299. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  300. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  301. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  302. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +9 -7
  303. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +112 -36
  304. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  305. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  306. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
  307. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  308. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  309. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  310. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  311. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  312. data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
  313. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  314. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
  315. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  316. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  317. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  319. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  320. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  322. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  323. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → team_billing_spec.rb} +2 -1
  324. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  325. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  326. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  327. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  328. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  329. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  330. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  331. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  332. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  333. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  334. data/spec/slack/web/api/error_spec.rb +7 -7
  335. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
  336. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  337. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  338. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  339. data/spec/slack/web/api/pagination/cursor_spec.rb +41 -13
  340. data/spec/slack/web/client_spec.rb +168 -19
  341. data/spec/slack/web/faraday/request_spec.rb +80 -0
  342. data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
  343. data/spec/spec_helper.rb +9 -2
  344. data/spec/support/queue_with_timeout.rb +5 -4
  345. data/spec/support/real_time/concurrency/mock.rb +1 -0
  346. data/spec/support/real_time/connected_client.rb +6 -6
  347. data/spec/support/real_time/event.rb +1 -0
  348. data/spec/support/token.rb +1 -0
  349. data/spec/support/vcr.rb +37 -1
  350. metadata +205 -147
  351. data/examples/hi_real_time/Gemfile +0 -5
  352. data/examples/hi_real_time/hi.gif +0 -0
  353. data/examples/hi_real_time/hi.rb +0 -37
  354. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  355. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  356. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  357. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  358. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  359. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  360. data/lib/slack/real_time/concurrency/celluloid.rb +0 -118
  361. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
  362. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  363. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  364. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  365. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  366. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  367. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  368. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  369. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  370. data/screenshots/register-bot.png +0 -0
  371. data/spec/fixtures/slack/web/503_error.yml +0 -14
  372. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  373. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  374. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
  375. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  376. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  377. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -18
  378. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  379. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  380. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  381. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  382. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  383. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
  384. data/spec/slack/web/api/mixins/channels_spec.rb +0 -33
  385. data/spec/slack/web/api/mixins/groups_spec.rb +0 -33
@@ -0,0 +1,127 @@
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 FilesRemote
9
+ #
10
+ # Adds a file from a remote service
11
+ #
12
+ # @option options [string] :external_id
13
+ # Creator defined GUID for the file.
14
+ # @option options [string] :external_url
15
+ # URL of the remote file.
16
+ # @option options [string] :title
17
+ # Title of the file being shared.
18
+ # @option options [string] :filetype
19
+ # type of file.
20
+ # @option options [string] :indexable_file_contents
21
+ # A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file.
22
+ # @option options [string] :preview_image
23
+ # Preview of the document via multipart/form-data.
24
+ # @see https://api.slack.com/methods/files.remote.add
25
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.add.json
26
+ def files_remote_add(options = {})
27
+ throw ArgumentError.new('Required arguments :external_id missing') if options[:external_id].nil?
28
+ throw ArgumentError.new('Required arguments :external_url missing') if options[:external_url].nil?
29
+ throw ArgumentError.new('Required arguments :title missing') if options[:title].nil?
30
+ post('files.remote.add', options)
31
+ end
32
+
33
+ #
34
+ # Retrieve information about a remote file added to Slack
35
+ #
36
+ # @option options [string] :external_id
37
+ # Creator defined GUID for the file.
38
+ # @option options [file] :file
39
+ # Specify a file by providing its ID.
40
+ # @see https://api.slack.com/methods/files.remote.info
41
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.info.json
42
+ def files_remote_info(options = {})
43
+ post('files.remote.info', options)
44
+ end
45
+
46
+ #
47
+ # Retrieve information about a remote file added to Slack
48
+ #
49
+ # @option options [channel] :channel
50
+ # Filter files appearing in a specific channel, indicated by its ID.
51
+ # @option options [string] :cursor
52
+ # 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.
53
+ # @option options [integer] :limit
54
+ # The maximum number of items to return.
55
+ # @option options [string] :ts_from
56
+ # Filter files created after this timestamp (inclusive).
57
+ # @option options [string] :ts_to
58
+ # Filter files created before this timestamp (inclusive).
59
+ # @see https://api.slack.com/methods/files.remote.list
60
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.list.json
61
+ def files_remote_list(options = {})
62
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
63
+ if block_given?
64
+ Pagination::Cursor.new(self, :files_remote_list, options).each do |page|
65
+ yield page
66
+ end
67
+ else
68
+ post('files.remote.list', options)
69
+ end
70
+ end
71
+
72
+ #
73
+ # Remove a remote file.
74
+ #
75
+ # @option options [string] :external_id
76
+ # Creator defined GUID for the file.
77
+ # @option options [file] :file
78
+ # Specify a file by providing its ID.
79
+ # @see https://api.slack.com/methods/files.remote.remove
80
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.remove.json
81
+ def files_remote_remove(options = {})
82
+ post('files.remote.remove', options)
83
+ end
84
+
85
+ #
86
+ # Share a remote file into a channel.
87
+ #
88
+ # @option options [string] :channels
89
+ # Comma-separated list of channel IDs where the file will be shared.
90
+ # @option options [string] :external_id
91
+ # The globally unique identifier (GUID) for the file, as set by the app registering the file with Slack. Either this field or file or both are required.
92
+ # @option options [file] :file
93
+ # Specify a file registered with Slack by providing its ID. Either this field or external_id or both are required.
94
+ # @see https://api.slack.com/methods/files.remote.share
95
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.share.json
96
+ def files_remote_share(options = {})
97
+ throw ArgumentError.new('Required arguments :channels missing') if options[:channels].nil?
98
+ post('files.remote.share', options)
99
+ end
100
+
101
+ #
102
+ # Updates an existing remote file.
103
+ #
104
+ # @option options [string] :external_id
105
+ # Creator defined GUID for the file.
106
+ # @option options [string] :external_url
107
+ # URL of the remote file.
108
+ # @option options [file] :file
109
+ # Specify a file by providing its ID.
110
+ # @option options [string] :filetype
111
+ # type of file.
112
+ # @option options [string] :indexable_file_contents
113
+ # File containing contents that can be used to improve searchability for the remote file.
114
+ # @option options [string] :preview_image
115
+ # Preview of the document via multipart/form-data.
116
+ # @option options [string] :title
117
+ # Title of the file being shared.
118
+ # @see https://api.slack.com/methods/files.remote.update
119
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.remote/files.remote.update.json
120
+ def files_remote_update(options = {})
121
+ post('files.remote.update', options)
122
+ end
123
+ end
124
+ end
125
+ end
126
+ end
127
+ 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
@@ -5,259 +6,6 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module Groups
8
- #
9
- # Archives a private channel.
10
- #
11
- # @option options [group] :channel
12
- # Private channel to archive.
13
- # @see https://api.slack.com/methods/groups.archive
14
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.archive.json
15
- def groups_archive(options = {})
16
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
17
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
18
- post('groups.archive', options)
19
- end
20
-
21
- #
22
- # Creates a private channel.
23
- #
24
- # @option options [Object] :name
25
- # Name of private channel to create.
26
- # @option options [Object] :validate
27
- # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
28
- # @see https://api.slack.com/methods/groups.create
29
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.create.json
30
- def groups_create(options = {})
31
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
32
- post('groups.create', options)
33
- end
34
-
35
- #
36
- # Clones and archives a private channel.
37
- #
38
- # @option options [group] :channel
39
- # Private channel to clone and archive.
40
- # @see https://api.slack.com/methods/groups.createChild
41
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.createChild.json
42
- def groups_createChild(options = {})
43
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
44
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
45
- post('groups.createChild', options)
46
- end
47
-
48
- #
49
- # Fetches history of messages and events from a private channel.
50
- #
51
- # @option options [group] :channel
52
- # Private channel to fetch history for.
53
- # @option options [Object] :inclusive
54
- # Include messages with latest or oldest timestamp in results.
55
- # @option options [timestamp] :latest
56
- # End of time range of messages to include in results.
57
- # @option options [timestamp] :oldest
58
- # Start of time range of messages to include in results.
59
- # @option options [Object] :unreads
60
- # Include unread_count_display in the output?.
61
- # @see https://api.slack.com/methods/groups.history
62
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.history.json
63
- def groups_history(options = {})
64
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
65
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
66
- post('groups.history', options)
67
- end
68
-
69
- #
70
- # Gets information about a private channel.
71
- #
72
- # @option options [group] :channel
73
- # Private channel to get info on.
74
- # @option options [Object] :include_locale
75
- # Set this to true to receive the locale for this group. Defaults to false.
76
- # @see https://api.slack.com/methods/groups.info
77
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.info.json
78
- def groups_info(options = {})
79
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
80
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
81
- post('groups.info', options)
82
- end
83
-
84
- #
85
- # Invites a user to a private channel.
86
- #
87
- # @option options [group] :channel
88
- # Private channel to invite user to.
89
- # @option options [user] :user
90
- # User to invite.
91
- # @see https://api.slack.com/methods/groups.invite
92
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.invite.json
93
- def groups_invite(options = {})
94
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
95
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
96
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
97
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
98
- post('groups.invite', options)
99
- end
100
-
101
- #
102
- # Removes a user from a private channel.
103
- #
104
- # @option options [group] :channel
105
- # Private channel to remove user from.
106
- # @option options [user] :user
107
- # User to remove from private channel.
108
- # @see https://api.slack.com/methods/groups.kick
109
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.kick.json
110
- def groups_kick(options = {})
111
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
112
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
113
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
114
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
115
- post('groups.kick', options)
116
- end
117
-
118
- #
119
- # Leaves a private channel.
120
- #
121
- # @option options [group] :channel
122
- # Private channel to leave.
123
- # @see https://api.slack.com/methods/groups.leave
124
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.leave.json
125
- def groups_leave(options = {})
126
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
127
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
128
- post('groups.leave', options)
129
- end
130
-
131
- #
132
- # Lists private channels that the calling user has access to.
133
- #
134
- # @option options [Object] :cursor
135
- # Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See pagination for more details.
136
- # @option options [Object] :exclude_archived
137
- # Don't return archived private channels.
138
- # @option options [Object] :exclude_members
139
- # Exclude the members from each group.
140
- # @option options [Object] :limit
141
- # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
142
- # @see https://api.slack.com/methods/groups.list
143
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.list.json
144
- def groups_list(options = {})
145
- if block_given?
146
- Pagination::Cursor.new(self, :groups_list, options).each do |page|
147
- yield page
148
- end
149
- else
150
- post('groups.list', options)
151
- end
152
- end
153
-
154
- #
155
- # Sets the read cursor in a private channel.
156
- #
157
- # @option options [group] :channel
158
- # Private channel to set reading cursor in.
159
- # @option options [timestamp] :ts
160
- # Timestamp of the most recently seen message.
161
- # @see https://api.slack.com/methods/groups.mark
162
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.mark.json
163
- def groups_mark(options = {})
164
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
165
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
166
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
167
- post('groups.mark', options)
168
- end
169
-
170
- #
171
- # Opens a private channel.
172
- #
173
- # @option options [group] :channel
174
- # Private channel to open.
175
- # @see https://api.slack.com/methods/groups.open
176
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.open.json
177
- def groups_open(options = {})
178
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
179
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
180
- post('groups.open', options)
181
- end
182
-
183
- #
184
- # Renames a private channel.
185
- #
186
- # @option options [group] :channel
187
- # Private channel to rename.
188
- # @option options [Object] :name
189
- # New name for private channel.
190
- # @option options [Object] :validate
191
- # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
192
- # @see https://api.slack.com/methods/groups.rename
193
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.rename.json
194
- def groups_rename(options = {})
195
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
196
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
197
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
198
- post('groups.rename', options)
199
- end
200
-
201
- #
202
- # Retrieve a thread of messages posted to a private channel
203
- #
204
- # @option options [group] :channel
205
- # Private channel to fetch thread from.
206
- # @option options [Object] :thread_ts
207
- # Unique identifier of a thread's parent message.
208
- # @see https://api.slack.com/methods/groups.replies
209
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.replies.json
210
- def groups_replies(options = {})
211
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
212
- throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
213
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
214
- post('groups.replies', options)
215
- end
216
-
217
- #
218
- # Sets the purpose for a private channel.
219
- #
220
- # @option options [group] :channel
221
- # Private channel to set the purpose of.
222
- # @option options [Object] :purpose
223
- # The new purpose.
224
- # @see https://api.slack.com/methods/groups.setPurpose
225
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.setPurpose.json
226
- def groups_setPurpose(options = {})
227
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
228
- throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
229
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
230
- post('groups.setPurpose', options)
231
- end
232
-
233
- #
234
- # Sets the topic for a private channel.
235
- #
236
- # @option options [group] :channel
237
- # Private channel to set the topic of.
238
- # @option options [Object] :topic
239
- # The new topic.
240
- # @see https://api.slack.com/methods/groups.setTopic
241
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.setTopic.json
242
- def groups_setTopic(options = {})
243
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
244
- throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
245
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
246
- post('groups.setTopic', options)
247
- end
248
-
249
- #
250
- # Unarchives a private channel.
251
- #
252
- # @option options [group] :channel
253
- # Private channel to unarchive.
254
- # @see https://api.slack.com/methods/groups.unarchive
255
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.unarchive.json
256
- def groups_unarchive(options = {})
257
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
258
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
259
- post('groups.unarchive', options)
260
- end
261
9
  end
262
10
  end
263
11
  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
@@ -5,107 +6,6 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module Im
8
- #
9
- # Close a direct message channel.
10
- #
11
- # @option options [im] :channel
12
- # Direct message channel to close.
13
- # @see https://api.slack.com/methods/im.close
14
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.close.json
15
- def im_close(options = {})
16
- 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
- post('im.close', options)
19
- end
20
-
21
- #
22
- # Fetches history of messages and events from direct message channel.
23
- #
24
- # @option options [im] :channel
25
- # Direct message channel to fetch history for.
26
- # @option options [Object] :inclusive
27
- # Include messages with latest or oldest timestamp in results.
28
- # @option options [timestamp] :latest
29
- # End of time range of messages to include in results.
30
- # @option options [timestamp] :oldest
31
- # Start of time range of messages to include in results.
32
- # @option options [Object] :unreads
33
- # Include unread_count_display in the output?.
34
- # @see https://api.slack.com/methods/im.history
35
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.history.json
36
- def im_history(options = {})
37
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
38
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
39
- post('im.history', options)
40
- end
41
-
42
- #
43
- # Lists direct message channels for the calling user.
44
- #
45
- # @option options [Object] :cursor
46
- # 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.
47
- # @option options [Object] :limit
48
- # 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.
49
- # @see https://api.slack.com/methods/im.list
50
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.list.json
51
- def im_list(options = {})
52
- if block_given?
53
- Pagination::Cursor.new(self, :im_list, options).each do |page|
54
- yield page
55
- end
56
- else
57
- post('im.list', options)
58
- end
59
- end
60
-
61
- #
62
- # Sets the read cursor in a direct message channel.
63
- #
64
- # @option options [im] :channel
65
- # Direct message channel to set reading cursor in.
66
- # @option options [timestamp] :ts
67
- # Timestamp of the most recently seen message.
68
- # @see https://api.slack.com/methods/im.mark
69
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.mark.json
70
- def im_mark(options = {})
71
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
72
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
73
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
74
- post('im.mark', options)
75
- end
76
-
77
- #
78
- # Opens a direct message channel.
79
- #
80
- # @option options [user] :user
81
- # User to open a direct message channel with.
82
- # @option options [Object] :include_locale
83
- # Set this to true to receive the locale for this im. Defaults to false.
84
- # @option options [Object] :return_im
85
- # Boolean, indicates you want the full IM channel definition in the response.
86
- # @see https://api.slack.com/methods/im.open
87
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.open.json
88
- def im_open(options = {})
89
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
90
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
91
- post('im.open', options)
92
- end
93
-
94
- #
95
- # Retrieve a thread of messages posted to a direct message conversation
96
- #
97
- # @option options [im] :channel
98
- # Direct message channel to fetch thread from.
99
- # @option options [Object] :thread_ts
100
- # Unique identifier of a thread's parent message.
101
- # @see https://api.slack.com/methods/im.replies
102
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.replies.json
103
- def im_replies(options = {})
104
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
105
- throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
106
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
107
- post('im.replies', options)
108
- end
109
9
  end
110
10
  end
111
11
  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
@@ -8,9 +9,11 @@ module Slack
8
9
  #
9
10
  # For Enterprise Grid workspaces, map local user IDs to global user IDs
10
11
  #
11
- # @option options [Object] :users
12
+ # @option options [array] :users
12
13
  # A comma-separated list of user ids, up to 400 per request.
13
- # @option options [Object] :to_old
14
+ # @option options [string] :team_id
15
+ # Specify team_id starts with T in case of Org Token.
16
+ # @option options [boolean] :to_old
14
17
  # Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.
15
18
  # @see https://api.slack.com/methods/migration.exchange
16
19
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/migration/migration.exchange.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
@@ -5,102 +6,6 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module Mpim
8
- #
9
- # Closes a multiparty direct message channel.
10
- #
11
- # @option options [channel] :channel
12
- # MPIM to close.
13
- # @see https://api.slack.com/methods/mpim.close
14
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.close.json
15
- def mpim_close(options = {})
16
- 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
- post('mpim.close', options)
19
- end
20
-
21
- #
22
- # Fetches history of messages and events from a multiparty direct message.
23
- #
24
- # @option options [channel] :channel
25
- # Multiparty direct message to fetch history for.
26
- # @option options [Object] :inclusive
27
- # Include messages with latest or oldest timestamp in results.
28
- # @option options [timestamp] :latest
29
- # End of time range of messages to include in results.
30
- # @option options [timestamp] :oldest
31
- # Start of time range of messages to include in results.
32
- # @option options [Object] :unreads
33
- # Include unread_count_display in the output?.
34
- # @see https://api.slack.com/methods/mpim.history
35
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.history.json
36
- def mpim_history(options = {})
37
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
38
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
39
- post('mpim.history', options)
40
- end
41
-
42
- #
43
- # Lists multiparty direct message channels for the calling user.
44
- #
45
- # @option options [Object] :cursor
46
- # Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See pagination for more details.
47
- # @option options [Object] :limit
48
- # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
49
- # @see https://api.slack.com/methods/mpim.list
50
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.list.json
51
- def mpim_list(options = {})
52
- if block_given?
53
- Pagination::Cursor.new(self, :mpim_list, options).each do |page|
54
- yield page
55
- end
56
- else
57
- post('mpim.list', options)
58
- end
59
- end
60
-
61
- #
62
- # Sets the read cursor in a multiparty direct message channel.
63
- #
64
- # @option options [channel] :channel
65
- # multiparty direct message channel to set reading cursor in.
66
- # @option options [timestamp] :ts
67
- # Timestamp of the most recently seen message.
68
- # @see https://api.slack.com/methods/mpim.mark
69
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.mark.json
70
- def mpim_mark(options = {})
71
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
72
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
73
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
74
- post('mpim.mark', options)
75
- end
76
-
77
- #
78
- # This method opens a multiparty direct message.
79
- #
80
- # @option options [Object] :users
81
- # Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.
82
- # @see https://api.slack.com/methods/mpim.open
83
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.open.json
84
- def mpim_open(options = {})
85
- throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
86
- post('mpim.open', options)
87
- end
88
-
89
- #
90
- # Retrieve a thread of messages posted to a direct message conversation from a multiparty direct message.
91
- #
92
- # @option options [channel] :channel
93
- # Multiparty direct message channel to fetch thread from.
94
- # @option options [Object] :thread_ts
95
- # Unique identifier of a thread's parent message.
96
- # @see https://api.slack.com/methods/mpim.replies
97
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.replies.json
98
- def mpim_replies(options = {})
99
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
100
- throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
101
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
102
- post('mpim.replies', options)
103
- end
104
9
  end
105
10
  end
106
11
  end