slack-ruby-client 0.13.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (402) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/integration_test.yml +26 -0
  4. data/.github/workflows/lint.yml +14 -0
  5. data/.github/workflows/pr_lint.yml +21 -0
  6. data/.github/workflows/test.yml +36 -0
  7. data/.gitignore +5 -3
  8. data/.rubocop.yml +34 -5
  9. data/.rubocop_todo.yml +180 -46
  10. data/.ruby-version +1 -0
  11. data/CHANGELOG.md +119 -2
  12. data/CONTRIBUTING.md +23 -11
  13. data/Dangerfile +2 -0
  14. data/Gemfile +22 -5
  15. data/Gemfile.danger +6 -0
  16. data/LICENSE.md +1 -1
  17. data/README.md +236 -101
  18. data/RELEASING.md +2 -2
  19. data/Rakefile +2 -1
  20. data/UPGRADING.md +100 -2
  21. data/bin/commands/admin_analytics.rb +16 -0
  22. data/bin/commands/admin_apps.rb +51 -0
  23. data/bin/commands/admin_apps_approved.rb +17 -0
  24. data/bin/commands/admin_apps_requests.rb +28 -0
  25. data/bin/commands/admin_apps_restricted.rb +17 -0
  26. data/bin/commands/admin_audit_anomaly_allow.rb +23 -0
  27. data/bin/commands/admin_auth_policy.rb +39 -0
  28. data/bin/commands/admin_barriers.rb +47 -0
  29. data/bin/commands/admin_conversations.rb +171 -0
  30. data/bin/commands/admin_conversations_ekm.rb +17 -0
  31. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  32. data/bin/commands/admin_emoji.rb +54 -0
  33. data/bin/commands/admin_inviteRequests.rb +36 -0
  34. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  35. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  36. data/bin/commands/admin_teams.rb +27 -0
  37. data/bin/commands/admin_teams_admins.rb +16 -0
  38. data/bin/commands/admin_teams_owners.rb +16 -0
  39. data/bin/commands/admin_teams_settings.rb +64 -0
  40. data/bin/commands/admin_usergroups.rb +48 -0
  41. data/bin/commands/admin_users.rb +98 -0
  42. data/bin/commands/admin_users_session.rb +78 -0
  43. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  44. data/bin/commands/api.rb +1 -1
  45. data/bin/commands/apps.rb +15 -0
  46. data/bin/commands/apps_connections.rb +13 -0
  47. data/bin/commands/apps_event_authorizations.rb +16 -0
  48. data/bin/commands/apps_manifest.rb +52 -0
  49. data/bin/commands/auth.rb +1 -0
  50. data/bin/commands/auth_teams.rb +16 -0
  51. data/bin/commands/bookmarks.rb +53 -0
  52. data/bin/commands/bots.rb +2 -0
  53. data/bin/commands/calls.rb +52 -0
  54. data/bin/commands/calls_participants.rb +25 -0
  55. data/bin/commands/chat.rb +61 -14
  56. data/bin/commands/chat_scheduledMessages.rb +19 -0
  57. data/bin/commands/conversations.rb +82 -10
  58. data/bin/commands/dialog.rb +1 -0
  59. data/bin/commands/dnd.rb +6 -3
  60. data/bin/commands/emoji.rb +1 -0
  61. data/bin/commands/files.rb +34 -18
  62. data/bin/commands/files_comments.rb +1 -21
  63. data/bin/commands/files_remote.rb +78 -0
  64. data/bin/commands/migration.rb +2 -0
  65. data/bin/commands/oauth.rb +2 -14
  66. data/bin/commands/oauth_v2.rb +29 -0
  67. data/bin/commands/openid_connect.rb +27 -0
  68. data/bin/commands/pins.rb +3 -6
  69. data/bin/commands/reactions.rb +3 -3
  70. data/bin/commands/reminders.rb +7 -0
  71. data/bin/commands/rtm.rb +1 -15
  72. data/bin/commands/search.rb +6 -1
  73. data/bin/commands/stars.rb +8 -6
  74. data/bin/commands/team.rb +6 -0
  75. data/bin/commands/team_billing.rb +13 -0
  76. data/bin/commands/team_preferences.rb +13 -0
  77. data/bin/commands/team_profile.rb +1 -0
  78. data/bin/commands/tooling_tokens.rb +14 -0
  79. data/bin/commands/usergroups.rb +7 -1
  80. data/bin/commands/usergroups_users.rb +3 -0
  81. data/bin/commands/users.rb +6 -4
  82. data/bin/commands/users_admin.rb +1 -0
  83. data/bin/commands/users_prefs.rb +1 -0
  84. data/bin/commands/users_profile.rb +6 -5
  85. data/bin/commands/views.rb +50 -0
  86. data/bin/commands/workflows.rb +38 -0
  87. data/bin/commands.rb +41 -8
  88. data/bin/slack +3 -4
  89. data/examples/hi_real_time_and_web/Gemfile +1 -0
  90. data/examples/hi_real_time_and_web/hi.rb +7 -3
  91. data/examples/hi_real_time_async_async/Gemfile +1 -0
  92. data/examples/hi_real_time_async_async/hi.rb +6 -2
  93. data/examples/hi_web/Gemfile +1 -0
  94. data/examples/hi_web/hi.rb +1 -0
  95. data/examples/new_ticket/Gemfile +1 -0
  96. data/examples/new_ticket/new_ticket.rb +1 -0
  97. data/lib/slack/config.rb +2 -2
  98. data/lib/slack/events/config.rb +32 -0
  99. data/lib/slack/events/request.rb +72 -0
  100. data/lib/slack/logger.rb +6 -5
  101. data/lib/slack/messages/formatting.rb +1 -0
  102. data/lib/slack/messages/message.rb +1 -4
  103. data/lib/slack/real_time/api/message.rb +6 -3
  104. data/lib/slack/real_time/api/message_id.rb +1 -0
  105. data/lib/slack/real_time/api/ping.rb +5 -2
  106. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  107. data/lib/slack/real_time/api/typing.rb +5 -2
  108. data/lib/slack/real_time/client.rb +105 -54
  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 +9 -13
  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 +5 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/{group.rb → mpim.rb} +2 -1
  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 +3 -1
  120. data/lib/slack/real_time/socket.rb +45 -17
  121. data/lib/slack/real_time/stores/base.rb +28 -14
  122. data/lib/slack/real_time/stores/starter.rb +325 -297
  123. data/lib/slack/real_time/stores/store.rb +271 -196
  124. data/lib/slack/real_time/stores.rb +2 -7
  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 +51 -0
  130. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  131. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  132. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  133. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations.rb +264 -0
  135. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  136. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -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/admin_users_unsupportedVersions.rb +25 -0
  149. data/lib/slack/web/api/endpoints/api.rb +2 -3
  150. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  151. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  152. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  153. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bookmarks.rb +88 -0
  157. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  158. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  159. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  160. data/lib/slack/web/api/endpoints/chat.rb +168 -65
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +182 -67
  163. data/lib/slack/web/api/endpoints/dialog.rb +5 -4
  164. data/lib/slack/web/api/endpoints/dnd.rb +9 -4
  165. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  166. data/lib/slack/web/api/endpoints/files.rb +69 -37
  167. data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/migration.rb +6 -3
  170. data/lib/slack/web/api/endpoints/oauth.rb +7 -31
  171. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  172. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  173. data/lib/slack/web/api/endpoints/pins.rb +11 -18
  174. data/lib/slack/web/api/endpoints/reactions.rb +22 -21
  175. data/lib/slack/web/api/endpoints/reminders.rb +23 -10
  176. data/lib/slack/web/api/endpoints/rtm.rb +3 -25
  177. data/lib/slack/web/api/endpoints/search.rb +31 -16
  178. data/lib/slack/web/api/endpoints/stars.rb +14 -11
  179. data/lib/slack/web/api/endpoints/team.rb +15 -4
  180. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  181. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  182. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  183. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  184. data/lib/slack/web/api/endpoints/usergroups.rb +31 -20
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +13 -8
  186. data/lib/slack/web/api/endpoints/users.rb +24 -23
  187. data/lib/slack/web/api/endpoints/users_admin.rb +3 -2
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +8 -7
  190. data/lib/slack/web/api/endpoints/views.rb +102 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/endpoints.rb +82 -18
  193. data/lib/slack/web/api/error.rb +1 -0
  194. data/lib/slack/web/api/errors/server_error.rb +37 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  197. data/lib/slack/web/api/errors.rb +1116 -0
  198. data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +5 -6
  199. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  200. data/lib/slack/web/api/mixins/users.id.rb +3 -4
  201. data/lib/slack/web/api/mixins/users.search.rb +3 -1
  202. data/lib/slack/web/api/mixins.rb +2 -2
  203. data/lib/slack/web/api/patches/chat.attachments-blocks.patch +69 -0
  204. data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
  205. data/lib/slack/web/api/patches/views.view-json.patch +55 -0
  206. data/lib/slack/web/api/templates/command.erb +1 -0
  207. data/lib/slack/web/api/templates/commands.erb +1 -0
  208. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  209. data/lib/slack/web/api/templates/errors.erb +20 -0
  210. data/lib/slack/web/api/templates/method.erb +6 -2
  211. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  212. data/lib/slack/web/client.rb +2 -1
  213. data/lib/slack/web/config.rb +5 -2
  214. data/lib/slack/web/faraday/connection.rb +24 -20
  215. data/lib/slack/web/faraday/request.rb +5 -1
  216. data/lib/slack/web/faraday/response/raise_error.rb +14 -7
  217. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  218. data/lib/slack/web/pagination/cursor.rb +7 -7
  219. data/lib/slack-ruby-client.rb +12 -5
  220. data/lib/slack.rb +1 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +1 -0
  223. data/lib/tasks/real_time.rake +51 -21
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +48 -12
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +7 -12
  228. data/spec/fixtures/slack/web/429_error.yml +50 -54
  229. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  230. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  231. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  234. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  235. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  236. data/spec/fixtures/slack/web/rtm_connect.yml +347 -26
  237. data/spec/fixtures/slack/web/users_info.yml +153 -69
  238. data/spec/fixtures/slack/web/users_list.yml +102 -41
  239. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  240. data/spec/integration/integration_spec.rb +115 -47
  241. data/spec/slack/config_spec.rb +2 -0
  242. data/spec/slack/events/config_spec.rb +35 -0
  243. data/spec/slack/events/request_spec.rb +188 -0
  244. data/spec/slack/messages/formatting_spec.rb +35 -13
  245. data/spec/slack/real_time/api/message_spec.rb +7 -2
  246. data/spec/slack/real_time/api/ping_spec.rb +3 -1
  247. data/spec/slack/real_time/api/typing_spec.rb +6 -2
  248. data/spec/slack/real_time/client_spec.rb +300 -142
  249. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  250. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  251. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  252. data/spec/slack/real_time/event_handlers/bot_spec.rb +20 -17
  253. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  254. data/spec/slack/real_time/event_handlers/im_spec.rb +31 -27
  255. data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +36 -27
  256. data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +31 -24
  257. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -7
  258. data/spec/slack/real_time/event_handlers/user_spec.rb +7 -5
  259. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  260. data/spec/slack/real_time/stores/store_spec.rb +50 -0
  261. data/spec/slack/slack_spec.rb +41 -6
  262. data/spec/slack/version_spec.rb +2 -1
  263. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  265. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +13 -0
  266. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  268. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
  269. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  270. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  271. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  273. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  274. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  275. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  276. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  277. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  278. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  279. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  280. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  281. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  282. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  283. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  284. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  285. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  287. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  288. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  289. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  290. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  291. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → auth_teams_spec.rb} +2 -1
  292. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  293. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  294. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  295. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  296. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  297. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +9 -7
  298. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +144 -40
  299. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +18 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
  302. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +112 -0
  303. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  304. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  305. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  306. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  307. data/spec/slack/web/api/endpoints/files_spec.rb +18 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  309. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
  310. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  311. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  312. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  314. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  315. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  317. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → team_billing_spec.rb} +2 -1
  319. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  320. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  322. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  323. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  324. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  325. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  326. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  327. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  328. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  329. data/spec/slack/web/api/error_spec.rb +7 -7
  330. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
  331. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  332. data/spec/slack/web/api/mixins/conversations_spec.rb +45 -0
  333. data/spec/slack/web/api/mixins/users_spec.rb +19 -8
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +47 -15
  335. data/spec/slack/web/client_spec.rb +199 -22
  336. data/spec/slack/web/faraday/request_spec.rb +80 -0
  337. data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
  338. data/spec/spec_helper.rb +9 -2
  339. data/spec/support/queue_with_timeout.rb +5 -4
  340. data/spec/support/real_time/concurrency/mock.rb +1 -0
  341. data/spec/support/real_time/connected_client.rb +6 -6
  342. data/spec/support/real_time/event.rb +1 -0
  343. data/spec/support/real_time/loaded_client.rb +120 -0
  344. data/spec/support/token.rb +1 -0
  345. data/spec/support/vcr.rb +37 -1
  346. metadata +174 -262
  347. data/.travis.yml +0 -32
  348. data/bin/commands/apps_permissions.rb +0 -22
  349. data/bin/commands/apps_permissions_resources.rb +0 -14
  350. data/bin/commands/apps_permissions_scopes.rb +0 -12
  351. data/bin/commands/apps_permissions_users.rb +0 -25
  352. data/bin/commands/channels.rb +0 -175
  353. data/bin/commands/groups.rb +0 -174
  354. data/bin/commands/im.rb +0 -67
  355. data/bin/commands/mpim.rb +0 -65
  356. data/examples/hi_real_time/Gemfile +0 -5
  357. data/examples/hi_real_time/hi.gif +0 -0
  358. data/examples/hi_real_time/hi.rb +0 -37
  359. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  360. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  361. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  362. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  363. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  364. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  365. data/lib/slack/real_time/concurrency/celluloid.rb +0 -118
  366. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
  367. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -35
  368. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -30
  369. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -20
  370. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -49
  371. data/lib/slack/web/api/endpoints/channels.rb +0 -266
  372. data/lib/slack/web/api/endpoints/groups.rb +0 -265
  373. data/lib/slack/web/api/endpoints/im.rb +0 -113
  374. data/lib/slack/web/api/endpoints/mpim.rb +0 -108
  375. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  376. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  377. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  378. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  379. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  380. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  381. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  382. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  383. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  384. data/screenshots/register-bot.png +0 -0
  385. data/spec/fixtures/slack/web/503_error.yml +0 -14
  386. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  387. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  388. data/spec/fixtures/slack/web/rtm_start.yml +0 -104
  389. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
  390. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  391. data/spec/slack/real_time/rtm_start_spec.rb +0 -13
  392. data/spec/slack/real_time/store_spec.rb +0 -11
  393. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  394. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -18
  395. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  396. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  397. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  398. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  399. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  400. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
  401. data/spec/slack/web/api/mixins/channels_spec.rb +0 -33
  402. data/spec/slack/web/api/mixins/groups_spec.rb +0 -33
@@ -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,6 +6,42 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module Conversations
9
+ #
10
+ # Accepts an invitation to a Slack Connect channel.
11
+ #
12
+ # @option options [string] :channel_name
13
+ # Name of the channel. If the channel does not exist already in your workspace, this name is the one that the channel will take.
14
+ # @option options [Object] :channel_id
15
+ # ID of the channel that you'd like to accept. Must provide either invite_id or channel_id.
16
+ # @option options [boolean] :free_trial_accepted
17
+ # Whether you'd like to use your workspace's free trial to begin using Slack Connect.
18
+ # @option options [Object] :invite_id
19
+ # See the shared_channel_invite_received event payload for more details on how to retrieve the ID of the invitation.
20
+ # @option options [boolean] :is_private
21
+ # Whether the channel should be private.
22
+ # @option options [string] :team_id
23
+ # The ID of the workspace to accept the channel in. If an org-level token is used to call this method, the team_id argument is required.
24
+ # @see https://api.slack.com/methods/conversations.acceptSharedInvite
25
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.acceptSharedInvite.json
26
+ def conversations_acceptSharedInvite(options = {})
27
+ raise ArgumentError, 'Required arguments :channel_name missing' if options[:channel_name].nil?
28
+ post('conversations.acceptSharedInvite', options)
29
+ end
30
+
31
+ #
32
+ # Approves an invitation to a Slack Connect channel
33
+ #
34
+ # @option options [Object] :invite_id
35
+ # ID of the shared channel invite to approve.
36
+ # @option options [Object] :target_team
37
+ # The team or enterprise id of the other party involved in the invitation you are approving.
38
+ # @see https://api.slack.com/methods/conversations.approveSharedInvite
39
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.approveSharedInvite.json
40
+ def conversations_approveSharedInvite(options = {})
41
+ raise ArgumentError, 'Required arguments :invite_id missing' if options[:invite_id].nil?
42
+ post('conversations.approveSharedInvite', options)
43
+ end
44
+
8
45
  #
9
46
  # Archives a conversation.
10
47
  #
@@ -13,8 +50,8 @@ module Slack
13
50
  # @see https://api.slack.com/methods/conversations.archive
14
51
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.archive.json
15
52
  def conversations_archive(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]
53
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
54
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
18
55
  post('conversations.archive', options)
19
56
  end
20
57
 
@@ -26,47 +63,63 @@ module Slack
26
63
  # @see https://api.slack.com/methods/conversations.close
27
64
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.close.json
28
65
  def conversations_close(options = {})
29
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
30
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
66
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
67
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
31
68
  post('conversations.close', options)
32
69
  end
33
70
 
34
71
  #
35
72
  # Initiates a public or private channel-based conversation
36
73
  #
37
- # @option options [Object] :name
74
+ # @option options [string] :name
38
75
  # Name of the public or private channel to create.
39
- # @option options [Object] :is_private
76
+ # @option options [boolean] :is_private
40
77
  # Create a private channel instead of a public one.
41
- # @option options [Object] :user_ids
42
- # Required for workspace apps. A list of between 1 and 30 human users that will be added to the newly-created conversation. This argument has no effect when used by classic Slack apps.
78
+ # @option options [string] :team_id
79
+ # encoded team id to create the channel in, required if org token is used.
43
80
  # @see https://api.slack.com/methods/conversations.create
44
81
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.create.json
45
82
  def conversations_create(options = {})
46
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
83
+ raise ArgumentError, 'Required arguments :name missing' if options[:name].nil?
47
84
  post('conversations.create', options)
48
85
  end
49
86
 
87
+ #
88
+ # Declines a Slack Connect channel invite.
89
+ #
90
+ # @option options [Object] :invite_id
91
+ # ID of the Slack Connect invite to decline. Subscribe to the shared_channel_invite_accepted event to receive IDs of Slack Connect channel invites that have been accepted and are awaiting approval.
92
+ # @option options [Object] :target_team
93
+ # The team or enterprise id of the other party involved in the invitation you are declining.
94
+ # @see https://api.slack.com/methods/conversations.declineSharedInvite
95
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.declineSharedInvite.json
96
+ def conversations_declineSharedInvite(options = {})
97
+ raise ArgumentError, 'Required arguments :invite_id missing' if options[:invite_id].nil?
98
+ post('conversations.declineSharedInvite', options)
99
+ end
100
+
50
101
  #
51
102
  # Fetches a conversation's history of messages and events.
52
103
  #
53
104
  # @option options [channel] :channel
54
105
  # Conversation ID to fetch history for.
55
- # @option options [Object] :cursor
106
+ # @option options [string] :cursor
56
107
  # 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.
57
- # @option options [Object] :inclusive
58
- # Include messages with latest or oldest timestamp in results only when either timestamp is specified.
108
+ # @option options [boolean] :include_all_metadata
109
+ # Return all metadata associated with this message.
110
+ # @option options [boolean] :inclusive
111
+ # Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified.
59
112
  # @option options [timestamp] :latest
60
- # End of time range of messages to include in results.
61
- # @option options [Object] :limit
113
+ # Only messages before this Unix timestamp will be included in results. Default is the current time.
114
+ # @option options [number] :limit
62
115
  # 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.
63
116
  # @option options [timestamp] :oldest
64
- # Start of time range of messages to include in results.
117
+ # Only messages after this Unix timestamp will be included in results.
65
118
  # @see https://api.slack.com/methods/conversations.history
66
119
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.history.json
67
120
  def conversations_history(options = {})
68
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
69
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
121
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
122
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
70
123
  if block_given?
71
124
  Pagination::Cursor.new(self, :conversations_history, options).each do |page|
72
125
  yield page
@@ -81,13 +134,15 @@ module Slack
81
134
  #
82
135
  # @option options [channel] :channel
83
136
  # Conversation ID to learn more about.
84
- # @option options [Object] :include_locale
137
+ # @option options [boolean] :include_locale
85
138
  # Set this to true to receive the locale for this conversation. Defaults to false.
139
+ # @option options [boolean] :include_num_members
140
+ # Set to true to include the member count for the specified conversation. Defaults to false.
86
141
  # @see https://api.slack.com/methods/conversations.info
87
142
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.info.json
88
143
  def conversations_info(options = {})
89
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
90
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
144
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
145
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
91
146
  post('conversations.info', options)
92
147
  end
93
148
 
@@ -96,17 +151,36 @@ module Slack
96
151
  #
97
152
  # @option options [channel] :channel
98
153
  # The ID of the public or private channel to invite user(s) to.
99
- # @option options [Object] :users
100
- # A comma separated list of user IDs. Up to 30 users may be listed.
154
+ # @option options [string] :users
155
+ # A comma separated list of user IDs. Up to 1000 users may be listed.
101
156
  # @see https://api.slack.com/methods/conversations.invite
102
157
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.invite.json
103
158
  def conversations_invite(options = {})
104
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
105
- throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
106
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
159
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
160
+ raise ArgumentError, 'Required arguments :users missing' if options[:users].nil?
161
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
107
162
  post('conversations.invite', options)
108
163
  end
109
164
 
165
+ #
166
+ # Sends an invitation to a Slack Connect channel
167
+ #
168
+ # @option options [channel] :channel
169
+ # ID of the channel on your team that you'd like to share.
170
+ # @option options [array] :emails
171
+ # Optional email to receive this invite. Either emails or user_ids must be provided.
172
+ # @option options [boolean] :external_limited
173
+ # Optional boolean on whether invite is to a external limited member. Defaults to true.
174
+ # @option options [array] :user_ids
175
+ # Optional user_id to receive this invite. Either emails or user_ids must be provided.
176
+ # @see https://api.slack.com/methods/conversations.inviteShared
177
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.inviteShared.json
178
+ def conversations_inviteShared(options = {})
179
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
180
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
181
+ post('conversations.inviteShared', options)
182
+ end
183
+
110
184
  #
111
185
  # Joins an existing conversation.
112
186
  #
@@ -115,8 +189,8 @@ module Slack
115
189
  # @see https://api.slack.com/methods/conversations.join
116
190
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.join.json
117
191
  def conversations_join(options = {})
118
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
119
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
192
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
193
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
120
194
  post('conversations.join', options)
121
195
  end
122
196
 
@@ -130,9 +204,9 @@ module Slack
130
204
  # @see https://api.slack.com/methods/conversations.kick
131
205
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.kick.json
132
206
  def conversations_kick(options = {})
133
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
134
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
135
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
207
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
208
+ raise ArgumentError, 'Required arguments :user missing' if options[:user].nil?
209
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
136
210
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
137
211
  post('conversations.kick', options)
138
212
  end
@@ -145,21 +219,23 @@ module Slack
145
219
  # @see https://api.slack.com/methods/conversations.leave
146
220
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.leave.json
147
221
  def conversations_leave(options = {})
148
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
149
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
222
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
223
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
150
224
  post('conversations.leave', options)
151
225
  end
152
226
 
153
227
  #
154
228
  # Lists all channels in a Slack team.
155
229
  #
156
- # @option options [Object] :cursor
230
+ # @option options [string] :cursor
157
231
  # 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.
158
- # @option options [Object] :exclude_archived
232
+ # @option options [boolean] :exclude_archived
159
233
  # Set to true to exclude archived channels from the list.
160
- # @option options [Object] :limit
234
+ # @option options [number] :limit
161
235
  # 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. Must be an integer no larger than 1000.
162
- # @option options [Object] :types
236
+ # @option options [string] :team_id
237
+ # encoded team id to list channels in, required if token belongs to org-wide app.
238
+ # @option options [string] :types
163
239
  # Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.
164
240
  # @see https://api.slack.com/methods/conversations.list
165
241
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.list.json
@@ -173,20 +249,55 @@ module Slack
173
249
  end
174
250
  end
175
251
 
252
+ #
253
+ # Lists shared channel invites that have been generated or received but have not been approved by all parties
254
+ #
255
+ # @option options [string] :cursor
256
+ # Set to next_cursor returned by previous call to list items in subsequent page.
257
+ # @option options [string] :team_id
258
+ # Encoded team id for the workspace to retrieve invites for, required if org token is used.
259
+ # @see https://api.slack.com/methods/conversations.listConnectInvites
260
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.listConnectInvites.json
261
+ def conversations_listConnectInvites(options = {})
262
+ if block_given?
263
+ Pagination::Cursor.new(self, :conversations_listConnectInvites, options).each do |page|
264
+ yield page
265
+ end
266
+ else
267
+ post('conversations.listConnectInvites', options)
268
+ end
269
+ end
270
+
271
+ #
272
+ # Sets the read cursor in a channel.
273
+ #
274
+ # @option options [channel] :channel
275
+ # Channel or conversation to set the read cursor for.
276
+ # @option options [timestamp] :ts
277
+ # Unique identifier of message you want marked as most recently seen in this conversation.
278
+ # @see https://api.slack.com/methods/conversations.mark
279
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.mark.json
280
+ def conversations_mark(options = {})
281
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
282
+ raise ArgumentError, 'Required arguments :ts missing' if options[:ts].nil?
283
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
284
+ post('conversations.mark', options)
285
+ end
286
+
176
287
  #
177
288
  # Retrieve members of a conversation.
178
289
  #
179
290
  # @option options [channel] :channel
180
291
  # ID of the conversation to retrieve members for.
181
- # @option options [Object] :cursor
292
+ # @option options [string] :cursor
182
293
  # 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.
183
- # @option options [Object] :limit
294
+ # @option options [number] :limit
184
295
  # 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.
185
296
  # @see https://api.slack.com/methods/conversations.members
186
297
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.members.json
187
298
  def conversations_members(options = {})
188
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
189
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
299
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
300
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
190
301
  if block_given?
191
302
  Pagination::Cursor.new(self, :conversations_members, options).each do |page|
192
303
  yield page
@@ -201,14 +312,16 @@ module Slack
201
312
  #
202
313
  # @option options [channel] :channel
203
314
  # Resume a conversation by supplying an im or mpim's ID. Or provide the users field instead.
204
- # @option options [Object] :return_im
315
+ # @option options [boolean] :prevent_creation
316
+ # Do not create a direct message or multi-person direct message. This is used to see if there is an existing dm or mpdm.
317
+ # @option options [boolean] :return_im
205
318
  # Boolean, indicates you want the full IM channel definition in the response.
206
- # @option options [Object] :users
319
+ # @option options [string] :users
207
320
  # Comma separated lists of users. If only one user is included, this creates a 1:1 DM. The ordering of the users is preserved whenever a multi-person direct message is returned. Supply a channel when not supplying users.
208
321
  # @see https://api.slack.com/methods/conversations.open
209
322
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.open.json
210
323
  def conversations_open(options = {})
211
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
324
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
212
325
  post('conversations.open', options)
213
326
  end
214
327
 
@@ -217,14 +330,14 @@ module Slack
217
330
  #
218
331
  # @option options [channel] :channel
219
332
  # ID of conversation to rename.
220
- # @option options [Object] :name
333
+ # @option options [string] :name
221
334
  # New name for conversation.
222
335
  # @see https://api.slack.com/methods/conversations.rename
223
336
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.rename.json
224
337
  def conversations_rename(options = {})
225
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
226
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
227
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
338
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
339
+ raise ArgumentError, 'Required arguments :name missing' if options[:name].nil?
340
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
228
341
  post('conversations.rename', options)
229
342
  end
230
343
 
@@ -234,23 +347,25 @@ module Slack
234
347
  # @option options [channel] :channel
235
348
  # Conversation ID to fetch thread from.
236
349
  # @option options [timestamp] :ts
237
- # Unique identifier of a thread's parent message.
238
- # @option options [Object] :cursor
350
+ # Unique identifier of either a thread's parent message or a message in the thread. ts must be the timestamp of an existing message with 0 or more replies. If there are no replies then just the single message referenced by ts will return - it is just an ordinary, unthreaded message.
351
+ # @option options [string] :cursor
239
352
  # 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.
240
- # @option options [Object] :inclusive
241
- # Include messages with latest or oldest timestamp in results only when either timestamp is specified.
353
+ # @option options [boolean] :include_all_metadata
354
+ # Return all metadata associated with this message.
355
+ # @option options [boolean] :inclusive
356
+ # Include messages with oldest or latest timestamps in results. Ignored unless either timestamp is specified.
242
357
  # @option options [timestamp] :latest
243
- # End of time range of messages to include in results.
244
- # @option options [Object] :limit
358
+ # Only messages before this Unix timestamp will be included in results.
359
+ # @option options [number] :limit
245
360
  # 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.
246
361
  # @option options [timestamp] :oldest
247
- # Start of time range of messages to include in results.
362
+ # Only messages after this Unix timestamp will be included in results.
248
363
  # @see https://api.slack.com/methods/conversations.replies
249
364
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.replies.json
250
365
  def conversations_replies(options = {})
251
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
252
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
253
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
366
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
367
+ raise ArgumentError, 'Required arguments :ts missing' if options[:ts].nil?
368
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
254
369
  if block_given?
255
370
  Pagination::Cursor.new(self, :conversations_replies, options).each do |page|
256
371
  yield page
@@ -265,14 +380,14 @@ module Slack
265
380
  #
266
381
  # @option options [channel] :channel
267
382
  # Conversation to set the purpose of.
268
- # @option options [Object] :purpose
383
+ # @option options [string] :purpose
269
384
  # A new, specialer purpose.
270
385
  # @see https://api.slack.com/methods/conversations.setPurpose
271
386
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.setPurpose.json
272
387
  def conversations_setPurpose(options = {})
273
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
274
- throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
275
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
388
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
389
+ raise ArgumentError, 'Required arguments :purpose missing' if options[:purpose].nil?
390
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
276
391
  post('conversations.setPurpose', options)
277
392
  end
278
393
 
@@ -281,14 +396,14 @@ module Slack
281
396
  #
282
397
  # @option options [channel] :channel
283
398
  # Conversation to set the topic of.
284
- # @option options [Object] :topic
399
+ # @option options [string] :topic
285
400
  # The new topic string. Does not support formatting or linkification.
286
401
  # @see https://api.slack.com/methods/conversations.setTopic
287
402
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.setTopic.json
288
403
  def conversations_setTopic(options = {})
289
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
290
- throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
291
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
404
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
405
+ raise ArgumentError, 'Required arguments :topic missing' if options[:topic].nil?
406
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
292
407
  post('conversations.setTopic', options)
293
408
  end
294
409
 
@@ -300,8 +415,8 @@ module Slack
300
415
  # @see https://api.slack.com/methods/conversations.unarchive
301
416
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.unarchive.json
302
417
  def conversations_unarchive(options = {})
303
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
304
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
418
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
419
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
305
420
  post('conversations.unarchive', options)
306
421
  end
307
422
  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,15 +9,15 @@ module Slack
8
9
  #
9
10
  # Open a dialog with a user
10
11
  #
11
- # @option options [Object] :dialog
12
+ # @option options [string] :dialog
12
13
  # The dialog definition. This must be a JSON-encoded string.
13
- # @option options [Object] :trigger_id
14
+ # @option options [string] :trigger_id
14
15
  # Exchange a trigger to post to the user.
15
16
  # @see https://api.slack.com/methods/dialog.open
16
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dialog/dialog.open.json
17
18
  def dialog_open(options = {})
18
- throw ArgumentError.new('Required arguments :dialog missing') if options[:dialog].nil?
19
- throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
19
+ raise ArgumentError, 'Required arguments :dialog missing' if options[:dialog].nil?
20
+ raise ArgumentError, 'Required arguments :trigger_id missing' if options[:trigger_id].nil?
20
21
  # dialog must be passed as an encoded JSON string
21
22
  if options.key?(:dialog)
22
23
  dialog = options[:dialog]
@@ -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
@@ -26,6 +27,8 @@ module Slack
26
27
  #
27
28
  # Retrieves a user's current Do Not Disturb status.
28
29
  #
30
+ # @option options [string] :team_id
31
+ # Encoded team id where passed in user param belongs, required if org token is used. If no user param is passed, then a team which has access to the app should be passed.
29
32
  # @option options [user] :user
30
33
  # User to fetch status for (defaults to current user).
31
34
  # @see https://api.slack.com/methods/dnd.info
@@ -38,23 +41,25 @@ module Slack
38
41
  #
39
42
  # Turns on Do Not Disturb mode for the current user, or changes its duration.
40
43
  #
41
- # @option options [Object] :num_minutes
44
+ # @option options [string] :num_minutes
42
45
  # Number of minutes, from now, to snooze until.
43
46
  # @see https://api.slack.com/methods/dnd.setSnooze
44
47
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dnd/dnd.setSnooze.json
45
48
  def dnd_setSnooze(options = {})
46
- throw ArgumentError.new('Required arguments :num_minutes missing') if options[:num_minutes].nil?
47
49
  post('dnd.setSnooze', options)
48
50
  end
49
51
 
50
52
  #
51
- # Retrieves the Do Not Disturb status for users on a team.
53
+ # Retrieves the Do Not Disturb status for up to 50 users on a team.
52
54
  #
53
- # @option options [Object] :users
55
+ # @option options [string] :users
54
56
  # Comma-separated list of users to fetch Do Not Disturb status for.
57
+ # @option options [string] :team_id
58
+ # Encoded team id where passed in users belong, required if org token is used.
55
59
  # @see https://api.slack.com/methods/dnd.teamInfo
56
60
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dnd/dnd.teamInfo.json
57
61
  def dnd_teamInfo(options = {})
62
+ raise ArgumentError, 'Required arguments :users missing' if options[:users].nil?
58
63
  post('dnd.teamInfo', options)
59
64
  end
60
65
  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