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