slack-ruby-client 0.11.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (392) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/danger.yml +19 -0
  4. data/.github/workflows/integtest.yml +25 -0
  5. data/.github/workflows/rubocop.yml +13 -0
  6. data/.github/workflows/test.yml +34 -0
  7. data/.gitignore +6 -3
  8. data/.rubocop.yml +36 -2
  9. data/.rubocop_todo.yml +186 -54
  10. data/CHANGELOG.md +156 -31
  11. data/CONTRIBUTING.md +20 -9
  12. data/Dangerfile +2 -0
  13. data/Gemfile +27 -6
  14. data/Gemfile.danger +6 -0
  15. data/LICENSE.md +1 -1
  16. data/README.md +199 -52
  17. data/RELEASING.md +2 -2
  18. data/Rakefile +2 -1
  19. data/UPGRADING.md +89 -3
  20. data/bin/commands/admin_analytics.rb +16 -0
  21. data/bin/commands/admin_apps.rb +51 -0
  22. data/bin/commands/admin_apps_approved.rb +17 -0
  23. data/bin/commands/admin_apps_requests.rb +28 -0
  24. data/bin/commands/admin_apps_restricted.rb +17 -0
  25. data/bin/commands/admin_auth_policy.rb +39 -0
  26. data/bin/commands/admin_barriers.rb +47 -0
  27. data/bin/commands/admin_conversations.rb +170 -0
  28. data/bin/commands/admin_conversations_ekm.rb +17 -0
  29. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  30. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  31. data/bin/commands/admin_emoji.rb +54 -0
  32. data/bin/commands/admin_inviteRequests.rb +36 -0
  33. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  34. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  35. data/bin/commands/admin_teams.rb +27 -0
  36. data/bin/commands/admin_teams_admins.rb +16 -0
  37. data/bin/commands/admin_teams_owners.rb +16 -0
  38. data/bin/commands/admin_teams_settings.rb +64 -0
  39. data/bin/commands/admin_usergroups.rb +48 -0
  40. data/bin/commands/admin_users.rb +98 -0
  41. data/bin/commands/admin_users_session.rb +78 -0
  42. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  43. data/bin/commands/api.rb +1 -1
  44. data/bin/commands/apps.rb +15 -0
  45. data/bin/commands/apps_connections.rb +13 -0
  46. data/bin/commands/apps_event_authorizations.rb +16 -0
  47. data/bin/commands/apps_manifest.rb +52 -0
  48. data/bin/commands/apps_permissions.rb +1 -0
  49. data/bin/commands/apps_permissions_resources.rb +15 -0
  50. data/bin/commands/apps_permissions_scopes.rb +13 -0
  51. data/bin/commands/apps_permissions_users.rb +26 -0
  52. data/bin/commands/auth.rb +1 -0
  53. data/bin/commands/auth_teams.rb +16 -0
  54. data/bin/commands/bookmarks.rb +52 -0
  55. data/bin/commands/bots.rb +2 -0
  56. data/bin/commands/calls.rb +52 -0
  57. data/bin/commands/calls_participants.rb +25 -0
  58. data/bin/commands/channels.rb +1 -153
  59. data/bin/commands/chat.rb +57 -12
  60. data/bin/commands/chat_scheduledMessages.rb +19 -0
  61. data/bin/commands/conversations.rb +75 -4
  62. data/bin/commands/dialog.rb +1 -0
  63. data/bin/commands/dnd.rb +6 -3
  64. data/bin/commands/emoji.rb +1 -0
  65. data/bin/commands/files.rb +14 -19
  66. data/bin/commands/files_comments.rb +1 -21
  67. data/bin/commands/files_remote.rb +78 -0
  68. data/bin/commands/groups.rb +1 -159
  69. data/bin/commands/im.rb +1 -62
  70. data/bin/commands/migration.rb +2 -0
  71. data/bin/commands/mpim.rb +1 -58
  72. data/bin/commands/oauth.rb +4 -15
  73. data/bin/commands/oauth_v2.rb +29 -0
  74. data/bin/commands/openid_connect.rb +27 -0
  75. data/bin/commands/pins.rb +3 -6
  76. data/bin/commands/reactions.rb +5 -3
  77. data/bin/commands/reminders.rb +7 -0
  78. data/bin/commands/rtm.rb +7 -4
  79. data/bin/commands/search.rb +8 -3
  80. data/bin/commands/stars.rb +10 -6
  81. data/bin/commands/team.rb +6 -0
  82. data/bin/commands/team_billing.rb +13 -0
  83. data/bin/commands/team_preferences.rb +13 -0
  84. data/bin/commands/team_profile.rb +1 -0
  85. data/bin/commands/tooling_tokens.rb +14 -0
  86. data/bin/commands/usergroups.rb +7 -1
  87. data/bin/commands/usergroups_users.rb +3 -0
  88. data/bin/commands/users.rb +21 -6
  89. data/bin/commands/users_admin.rb +1 -0
  90. data/bin/commands/users_prefs.rb +1 -0
  91. data/bin/commands/users_profile.rb +7 -6
  92. data/bin/commands/views.rb +48 -0
  93. data/bin/commands/workflows.rb +38 -0
  94. data/bin/commands.rb +40 -5
  95. data/bin/slack +2 -3
  96. data/examples/hi_real_time_and_web/Gemfile +1 -0
  97. data/examples/hi_real_time_and_web/hi.rb +7 -3
  98. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
  99. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
  100. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +12 -7
  101. data/examples/hi_web/Gemfile +1 -0
  102. data/examples/hi_web/hi.rb +1 -0
  103. data/examples/new_ticket/Gemfile +1 -0
  104. data/examples/new_ticket/new_ticket.rb +1 -0
  105. data/lib/slack/config.rb +2 -2
  106. data/lib/slack/events/config.rb +32 -0
  107. data/lib/slack/events/request.rb +72 -0
  108. data/lib/slack/logger.rb +6 -5
  109. data/lib/slack/messages/formatting.rb +1 -1
  110. data/lib/slack/messages/message.rb +1 -4
  111. data/lib/slack/real_time/api/message.rb +3 -1
  112. data/lib/slack/real_time/api/message_id.rb +1 -0
  113. data/lib/slack/real_time/api/ping.rb +5 -2
  114. data/lib/slack/real_time/api/typing.rb +3 -1
  115. data/lib/slack/real_time/client.rb +103 -34
  116. data/lib/slack/real_time/concurrency/async.rb +138 -0
  117. data/lib/slack/real_time/concurrency.rb +2 -2
  118. data/lib/slack/real_time/config.rb +6 -10
  119. data/lib/slack/real_time/models/base.rb +1 -4
  120. data/lib/slack/real_time/models/bot.rb +1 -0
  121. data/lib/slack/real_time/models/channel.rb +1 -0
  122. data/lib/slack/real_time/models/group.rb +1 -0
  123. data/lib/slack/real_time/models/im.rb +1 -0
  124. data/lib/slack/real_time/models/team.rb +1 -0
  125. data/lib/slack/real_time/models/user.rb +1 -0
  126. data/lib/slack/real_time/models.rb +1 -0
  127. data/lib/slack/real_time/socket.rb +45 -17
  128. data/lib/slack/real_time/stores/base.rb +5 -7
  129. data/lib/slack/real_time/stores/starter.rb +27 -3
  130. data/lib/slack/real_time/stores/store.rb +43 -25
  131. data/lib/slack/real_time/stores.rb +1 -0
  132. data/lib/slack/version.rb +2 -1
  133. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  134. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  135. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  136. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +51 -0
  137. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  138. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  139. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  140. data/lib/slack/web/api/endpoints/admin_conversations.rb +262 -0
  141. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  142. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  143. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  144. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  145. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  146. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  147. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  148. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  149. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  150. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  151. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  152. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  153. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  154. data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
  155. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  156. data/lib/slack/web/api/endpoints/api.rb +2 -3
  157. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  158. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  159. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  160. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  161. data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
  162. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
  163. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
  164. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
  165. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  166. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  167. data/lib/slack/web/api/endpoints/bookmarks.rb +86 -0
  168. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  169. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  170. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  171. data/lib/slack/web/api/endpoints/channels.rb +2 -243
  172. data/lib/slack/web/api/endpoints/chat.rb +145 -46
  173. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  174. data/lib/slack/web/api/endpoints/conversations.rb +152 -39
  175. data/lib/slack/web/api/endpoints/dialog.rb +3 -2
  176. data/lib/slack/web/api/endpoints/dnd.rb +9 -4
  177. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  178. data/lib/slack/web/api/endpoints/files.rb +35 -28
  179. data/lib/slack/web/api/endpoints/files_comments.rb +2 -34
  180. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  181. data/lib/slack/web/api/endpoints/groups.rb +1 -243
  182. data/lib/slack/web/api/endpoints/im.rb +1 -101
  183. data/lib/slack/web/api/endpoints/migration.rb +5 -2
  184. data/lib/slack/web/api/endpoints/mpim.rb +1 -86
  185. data/lib/slack/web/api/endpoints/oauth.rb +8 -30
  186. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  187. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  188. data/lib/slack/web/api/endpoints/pins.rb +8 -15
  189. data/lib/slack/web/api/endpoints/reactions.rb +29 -18
  190. data/lib/slack/web/api/endpoints/reminders.rb +18 -5
  191. data/lib/slack/web/api/endpoints/rtm.rb +14 -9
  192. data/lib/slack/web/api/endpoints/search.rb +30 -15
  193. data/lib/slack/web/api/endpoints/stars.rb +23 -10
  194. data/lib/slack/web/api/endpoints/team.rb +15 -4
  195. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  196. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  197. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  198. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  199. data/lib/slack/web/api/endpoints/usergroups.rb +27 -16
  200. data/lib/slack/web/api/endpoints/usergroups_users.rb +10 -5
  201. data/lib/slack/web/api/endpoints/users.rb +44 -17
  202. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  203. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  204. data/lib/slack/web/api/endpoints/users_profile.rb +9 -8
  205. data/lib/slack/web/api/endpoints/views.rb +97 -0
  206. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  207. data/lib/slack/web/api/endpoints.rb +80 -12
  208. data/lib/slack/web/api/error.rb +1 -0
  209. data/lib/slack/web/api/errors/server_error.rb +37 -0
  210. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  211. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  212. data/lib/slack/web/api/errors.rb +1066 -0
  213. data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +4 -5
  214. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  215. data/lib/slack/web/api/mixins/users.id.rb +2 -3
  216. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  217. data/lib/slack/web/api/mixins.rb +2 -2
  218. data/lib/slack/web/api/patches/chat.1.patch +70 -0
  219. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  220. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  221. data/lib/slack/web/api/templates/command.erb +1 -0
  222. data/lib/slack/web/api/templates/commands.erb +1 -0
  223. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  224. data/lib/slack/web/api/templates/errors.erb +20 -0
  225. data/lib/slack/web/api/templates/method.erb +5 -1
  226. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  227. data/lib/slack/web/client.rb +2 -1
  228. data/lib/slack/web/config.rb +3 -0
  229. data/lib/slack/web/faraday/connection.rb +24 -20
  230. data/lib/slack/web/faraday/request.rb +5 -1
  231. data/lib/slack/web/faraday/response/raise_error.rb +14 -7
  232. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  233. data/lib/slack/web/pagination/cursor.rb +7 -7
  234. data/lib/slack-ruby-client.rb +12 -5
  235. data/lib/slack.rb +1 -0
  236. data/lib/slack_ruby_client.rb +1 -0
  237. data/lib/tasks/git.rake +1 -0
  238. data/lib/tasks/real_time.rake +16 -8
  239. data/lib/tasks/update.rake +1 -0
  240. data/lib/tasks/web.rake +39 -10
  241. data/screenshots/create-app.png +0 -0
  242. data/slack-ruby-client.gemspec +7 -12
  243. data/spec/fixtures/slack/web/429_error.yml +50 -54
  244. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  245. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  246. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  247. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  248. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  249. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  250. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  251. data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
  252. data/spec/fixtures/slack/web/rtm_start.yml +771 -60
  253. data/spec/fixtures/slack/web/users_info.yml +153 -69
  254. data/spec/fixtures/slack/web/users_list.yml +102 -41
  255. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  256. data/spec/integration/integration_spec.rb +116 -48
  257. data/spec/slack/config_spec.rb +2 -0
  258. data/spec/slack/events/config_spec.rb +33 -0
  259. data/spec/slack/events/request_spec.rb +184 -0
  260. data/spec/slack/messages/formatting_spec.rb +25 -14
  261. data/spec/slack/real_time/api/message_spec.rb +6 -1
  262. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  263. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  264. data/spec/slack/real_time/client_spec.rb +258 -62
  265. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  266. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  267. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  268. data/spec/slack/real_time/event_handlers/bot_spec.rb +3 -2
  269. data/spec/slack/real_time/event_handlers/channel_spec.rb +14 -11
  270. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  271. data/spec/slack/real_time/event_handlers/group_spec.rb +6 -5
  272. data/spec/slack/real_time/event_handlers/im_spec.rb +10 -9
  273. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  274. data/spec/slack/real_time/event_handlers/user_spec.rb +3 -2
  275. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  276. data/spec/slack/real_time/rtm_start_spec.rb +2 -1
  277. data/spec/slack/real_time/store_spec.rb +4 -3
  278. data/spec/slack/slack_spec.rb +42 -8
  279. data/spec/slack/version_spec.rb +2 -1
  280. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  281. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  282. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +13 -0
  283. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  284. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  285. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  286. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  287. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  288. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  289. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  290. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  291. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  292. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  293. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  294. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  295. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  296. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  297. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  298. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  299. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  300. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  301. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  302. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  303. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  304. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  305. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  306. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  307. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  308. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  309. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  310. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  311. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  312. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  313. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +9 -7
  314. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +131 -39
  315. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  316. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +16 -6
  317. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
  318. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +103 -0
  319. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  320. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  322. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  323. data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
  324. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  325. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
  326. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  327. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  328. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  329. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  330. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  331. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  332. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  333. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  334. data/spec/slack/web/api/endpoints/team_billing_spec.rb +8 -0
  335. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  336. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  337. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  338. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  339. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  340. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  341. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  342. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  343. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  344. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  345. data/spec/slack/web/api/error_spec.rb +7 -7
  346. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
  347. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  348. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  349. data/spec/slack/web/api/mixins/users_spec.rb +25 -14
  350. data/spec/slack/web/api/pagination/cursor_spec.rb +43 -15
  351. data/spec/slack/web/client_spec.rb +186 -19
  352. data/spec/slack/web/faraday/request_spec.rb +80 -0
  353. data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
  354. data/spec/spec_helper.rb +9 -2
  355. data/spec/support/queue_with_timeout.rb +5 -4
  356. data/spec/support/real_time/concurrency/mock.rb +1 -0
  357. data/spec/support/real_time/connected_client.rb +6 -6
  358. data/spec/support/real_time/event.rb +1 -0
  359. data/spec/support/token.rb +1 -0
  360. data/spec/support/vcr.rb +37 -1
  361. metadata +177 -231
  362. data/.travis.yml +0 -30
  363. data/examples/hi_real_time/Gemfile +0 -5
  364. data/examples/hi_real_time/hi.gif +0 -0
  365. data/examples/hi_real_time/hi.rb +0 -37
  366. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  367. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  368. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
  369. data/lib/slack/real_time/concurrency/celluloid.rb +0 -117
  370. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  371. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  372. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  373. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  374. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  375. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  376. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  377. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  378. data/screenshots/register-bot.png +0 -0
  379. data/spec/fixtures/slack/web/503_error.yml +0 -14
  380. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  381. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  382. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -62
  383. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  384. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  385. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  386. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  387. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  388. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  389. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  390. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
  391. data/spec/slack/web/api/mixins/channels_spec.rb +0 -31
  392. data/spec/slack/web/api/mixins/groups_spec.rb +0 -31
@@ -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
+ 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
+
8
45
  #
9
46
  # Archives a conversation.
10
47
  #
@@ -14,7 +51,7 @@ module Slack
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
53
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
17
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
54
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
18
55
  post('conversations.archive', options)
19
56
  end
20
57
 
@@ -27,17 +64,19 @@ module Slack
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
66
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
30
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
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.
78
+ # @option options [string] :team_id
79
+ # encoded team id to create the channel in, required if org token is used.
41
80
  # @see https://api.slack.com/methods/conversations.create
42
81
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.create.json
43
82
  def conversations_create(options = {})
@@ -45,18 +84,32 @@ module Slack
45
84
  post('conversations.create', options)
46
85
  end
47
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
+
48
101
  #
49
102
  # Fetches a conversation's history of messages and events.
50
103
  #
51
104
  # @option options [channel] :channel
52
105
  # Conversation ID to fetch history for.
53
- # @option options [Object] :cursor
106
+ # @option options [string] :cursor
54
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.
55
- # @option options [Object] :inclusive
108
+ # @option options [boolean] :inclusive
56
109
  # Include messages with latest or oldest timestamp in results only when either timestamp is specified.
57
110
  # @option options [timestamp] :latest
58
- # End of time range of messages to include in results.
59
- # @option options [Object] :limit
111
+ # End of time range of messages to include in results. Default is the current time.
112
+ # @option options [number] :limit
60
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.
61
114
  # @option options [timestamp] :oldest
62
115
  # Start of time range of messages to include in results.
@@ -64,7 +117,7 @@ module Slack
64
117
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.history.json
65
118
  def conversations_history(options = {})
66
119
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
67
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
120
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
68
121
  if block_given?
69
122
  Pagination::Cursor.new(self, :conversations_history, options).each do |page|
70
123
  yield page
@@ -79,13 +132,15 @@ module Slack
79
132
  #
80
133
  # @option options [channel] :channel
81
134
  # Conversation ID to learn more about.
82
- # @option options [Object] :include_locale
135
+ # @option options [boolean] :include_locale
83
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.
84
139
  # @see https://api.slack.com/methods/conversations.info
85
140
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.info.json
86
141
  def conversations_info(options = {})
87
142
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
88
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
143
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
89
144
  post('conversations.info', options)
90
145
  end
91
146
 
@@ -94,17 +149,36 @@ module Slack
94
149
  #
95
150
  # @option options [channel] :channel
96
151
  # The ID of the public or private channel to invite user(s) to.
97
- # @option options [Object] :users
98
- # A comma separated list of user IDs. Up to 30 users may be listed.
152
+ # @option options [string] :users
153
+ # A comma separated list of user IDs. Up to 1000 users may be listed.
99
154
  # @see https://api.slack.com/methods/conversations.invite
100
155
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.invite.json
101
156
  def conversations_invite(options = {})
102
157
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
103
158
  throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
104
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
159
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
105
160
  post('conversations.invite', options)
106
161
  end
107
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
+
108
182
  #
109
183
  # Joins an existing conversation.
110
184
  #
@@ -114,7 +188,7 @@ module Slack
114
188
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.join.json
115
189
  def conversations_join(options = {})
116
190
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
117
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
191
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
118
192
  post('conversations.join', options)
119
193
  end
120
194
 
@@ -130,7 +204,7 @@ module Slack
130
204
  def conversations_kick(options = {})
131
205
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
132
206
  throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
133
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
207
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
134
208
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
135
209
  post('conversations.kick', options)
136
210
  end
@@ -144,20 +218,22 @@ module Slack
144
218
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.leave.json
145
219
  def conversations_leave(options = {})
146
220
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
147
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
221
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
148
222
  post('conversations.leave', options)
149
223
  end
150
224
 
151
225
  #
152
226
  # Lists all channels in a Slack team.
153
227
  #
154
- # @option options [Object] :cursor
228
+ # @option options [string] :cursor
155
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.
156
- # @option options [Object] :exclude_archived
230
+ # @option options [boolean] :exclude_archived
157
231
  # Set to true to exclude archived channels from the list.
158
- # @option options [Object] :limit
232
+ # @option options [number] :limit
159
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.
160
- # @option options [Object] :types
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
161
237
  # Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.
162
238
  # @see https://api.slack.com/methods/conversations.list
163
239
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.list.json
@@ -171,20 +247,55 @@ module Slack
171
247
  end
172
248
  end
173
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
+
174
285
  #
175
286
  # Retrieve members of a conversation.
176
287
  #
177
288
  # @option options [channel] :channel
178
289
  # ID of the conversation to retrieve members for.
179
- # @option options [Object] :cursor
290
+ # @option options [string] :cursor
180
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.
181
- # @option options [Object] :limit
292
+ # @option options [number] :limit
182
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.
183
294
  # @see https://api.slack.com/methods/conversations.members
184
295
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.members.json
185
296
  def conversations_members(options = {})
186
297
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
187
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
298
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
188
299
  if block_given?
189
300
  Pagination::Cursor.new(self, :conversations_members, options).each do |page|
190
301
  yield page
@@ -199,14 +310,16 @@ module Slack
199
310
  #
200
311
  # @option options [channel] :channel
201
312
  # Resume a conversation by supplying an im or mpim's ID. Or provide the users field instead.
202
- # @option options [Object] :return_im
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
203
316
  # Boolean, indicates you want the full IM channel definition in the response.
204
- # @option options [Object] :users
317
+ # @option options [string] :users
205
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.
206
319
  # @see https://api.slack.com/methods/conversations.open
207
320
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.open.json
208
321
  def conversations_open(options = {})
209
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
322
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
210
323
  post('conversations.open', options)
211
324
  end
212
325
 
@@ -215,14 +328,14 @@ module Slack
215
328
  #
216
329
  # @option options [channel] :channel
217
330
  # ID of conversation to rename.
218
- # @option options [Object] :name
331
+ # @option options [string] :name
219
332
  # New name for conversation.
220
333
  # @see https://api.slack.com/methods/conversations.rename
221
334
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.rename.json
222
335
  def conversations_rename(options = {})
223
336
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
224
337
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
225
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
338
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
226
339
  post('conversations.rename', options)
227
340
  end
228
341
 
@@ -232,14 +345,14 @@ module Slack
232
345
  # @option options [channel] :channel
233
346
  # Conversation ID to fetch thread from.
234
347
  # @option options [timestamp] :ts
235
- # Unique identifier of a thread's parent message.
236
- # @option options [Object] :cursor
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
237
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.
238
- # @option options [Object] :inclusive
351
+ # @option options [boolean] :inclusive
239
352
  # Include messages with latest or oldest timestamp in results only when either timestamp is specified.
240
353
  # @option options [timestamp] :latest
241
354
  # End of time range of messages to include in results.
242
- # @option options [Object] :limit
355
+ # @option options [number] :limit
243
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.
244
357
  # @option options [timestamp] :oldest
245
358
  # Start of time range of messages to include in results.
@@ -248,7 +361,7 @@ module Slack
248
361
  def conversations_replies(options = {})
249
362
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
250
363
  throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
251
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
364
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
252
365
  if block_given?
253
366
  Pagination::Cursor.new(self, :conversations_replies, options).each do |page|
254
367
  yield page
@@ -263,14 +376,14 @@ module Slack
263
376
  #
264
377
  # @option options [channel] :channel
265
378
  # Conversation to set the purpose of.
266
- # @option options [Object] :purpose
379
+ # @option options [string] :purpose
267
380
  # A new, specialer purpose.
268
381
  # @see https://api.slack.com/methods/conversations.setPurpose
269
382
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.setPurpose.json
270
383
  def conversations_setPurpose(options = {})
271
384
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
272
385
  throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
273
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
386
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
274
387
  post('conversations.setPurpose', options)
275
388
  end
276
389
 
@@ -279,14 +392,14 @@ module Slack
279
392
  #
280
393
  # @option options [channel] :channel
281
394
  # Conversation to set the topic of.
282
- # @option options [Object] :topic
395
+ # @option options [string] :topic
283
396
  # The new topic string. Does not support formatting or linkification.
284
397
  # @see https://api.slack.com/methods/conversations.setTopic
285
398
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.setTopic.json
286
399
  def conversations_setTopic(options = {})
287
400
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
288
401
  throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
289
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
402
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
290
403
  post('conversations.setTopic', options)
291
404
  end
292
405
 
@@ -299,7 +412,7 @@ module Slack
299
412
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.unarchive.json
300
413
  def conversations_unarchive(options = {})
301
414
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
302
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
415
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
303
416
  post('conversations.unarchive', options)
304
417
  end
305
418
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,9 +9,9 @@ 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
@@ -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
+ 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
@@ -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
@@ -35,46 +36,50 @@ module Slack
35
36
  end
36
37
 
37
38
  #
38
- # Gets information about a team file.
39
+ # Gets information about a file.
39
40
  #
40
41
  # @option options [file] :file
41
42
  # Specify a file by providing its ID.
43
+ # @option options [string] :cursor
44
+ # Parameter for pagination. File comments are paginated for a single file. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection of comments. See pagination for more details.
45
+ # @option options [integer] :limit
46
+ # 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.
42
47
  # @see https://api.slack.com/methods/files.info
43
48
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.info.json
44
49
  def files_info(options = {})
45
50
  throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
46
- post('files.info', options)
51
+ if block_given?
52
+ Pagination::Cursor.new(self, :files_info, options).each do |page|
53
+ yield page
54
+ end
55
+ else
56
+ post('files.info', options)
57
+ end
47
58
  end
48
59
 
49
60
  #
50
- # Lists & filters team files.
61
+ # List for a team, in a channel, or from a user with applied filters.
51
62
  #
52
63
  # @option options [channel] :channel
53
64
  # Filter files appearing in a specific channel, indicated by its ID.
54
- # @option options [Object] :ts_from
65
+ # @option options [string] :files
66
+ # .
67
+ # @option options [boolean] :show_files_hidden_by_limit
68
+ # Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.
69
+ # @option options [string] :team_id
70
+ # encoded team id to list files in, required if org token is used.
71
+ # @option options [string] :ts_from
55
72
  # Filter files created after this timestamp (inclusive).
56
- # @option options [Object] :ts_to
73
+ # @option options [string] :ts_to
57
74
  # Filter files created before this timestamp (inclusive).
58
- # @option options [Object] :types
59
- # Filter files by type:
60
- #
61
- # all - All files
62
- # spaces - Posts
63
- # snippets - Snippets
64
- # images - Image files
65
- # gdocs - Google docs
66
- # zips - Zip files
67
- # pdfs - PDF files
68
- #
69
- #
70
- # You can pass multiple values in the types argument, like types=spaces,snippets.The default value is all, which does not filter the list.
71
- # .
75
+ # @option options [string] :types
76
+ # Filter files by type (see below). You can pass multiple values in the types argument, like types=spaces,snippets.The default value is all, which does not filter the list.
72
77
  # @option options [user] :user
73
78
  # Filter files created by a single user.
74
79
  # @see https://api.slack.com/methods/files.list
75
80
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.list.json
76
81
  def files_list(options = {})
77
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
82
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
78
83
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
79
84
  post('files.list', options)
80
85
  end
@@ -102,7 +107,7 @@ module Slack
102
107
  def files_share(options = {})
103
108
  throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
104
109
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
105
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
110
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
106
111
  logger.warn('The files.share method is undocumented.')
107
112
  post('files.share', options)
108
113
  end
@@ -122,19 +127,21 @@ module Slack
122
127
  #
123
128
  # Uploads or creates a file.
124
129
  #
125
- # @option options [Object] :channels
130
+ # @option options [string] :channels
126
131
  # Comma-separated list of channel names or IDs where the file will be shared.
127
- # @option options [Object] :content
132
+ # @option options [string] :content
128
133
  # File contents via a POST variable. If omitting this parameter, you must provide a file.
129
134
  # @option options [file] :file
130
135
  # File contents via multipart/form-data. If omitting this parameter, you must submit content.
131
- # @option options [Object] :filename
136
+ # @option options [string] :filename
132
137
  # Filename of file.
133
- # @option options [Object] :filetype
138
+ # @option options [string] :filetype
134
139
  # A file type identifier.
135
- # @option options [Object] :initial_comment
136
- # Initial comment to add to file.
137
- # @option options [Object] :title
140
+ # @option options [string] :initial_comment
141
+ # The message text introducing the file in specified channels.
142
+ # @option options [string] :thread_ts
143
+ # Provide another message's ts value to upload this file as a reply. Never use a reply's ts value; use its parent instead.
144
+ # @option options [string] :title
138
145
  # Title of file.
139
146
  # @see https://api.slack.com/methods/files.upload
140
147
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files/files.upload.json
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -5,27 +6,12 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module FilesComments
8
- #
9
- # Add a comment to an existing file.
10
- #
11
- # @option options [Object] :comment
12
- # Text of the comment to add.
13
- # @option options [file] :file
14
- # File to add a comment to.
15
- # @see https://api.slack.com/methods/files.comments.add
16
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.comments/files.comments.add.json
17
- def files_comments_add(options = {})
18
- throw ArgumentError.new('Required arguments :comment missing') if options[:comment].nil?
19
- throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
20
- post('files.comments.add', options)
21
- end
22
-
23
9
  #
24
10
  # Deletes an existing comment on a file.
25
11
  #
26
12
  # @option options [file] :file
27
13
  # File to delete a comment from.
28
- # @option options [Object] :id
14
+ # @option options [string] :id
29
15
  # The comment to delete.
30
16
  # @see https://api.slack.com/methods/files.comments.delete
31
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.comments/files.comments.delete.json
@@ -34,24 +20,6 @@ module Slack
34
20
  throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
35
21
  post('files.comments.delete', options)
36
22
  end
37
-
38
- #
39
- # Edit an existing file comment.
40
- #
41
- # @option options [Object] :comment
42
- # Text of the comment to edit.
43
- # @option options [file] :file
44
- # File containing the comment to edit.
45
- # @option options [Object] :id
46
- # The comment to edit.
47
- # @see https://api.slack.com/methods/files.comments.edit
48
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.comments/files.comments.edit.json
49
- def files_comments_edit(options = {})
50
- throw ArgumentError.new('Required arguments :comment missing') if options[:comment].nil?
51
- throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
52
- throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
53
- post('files.comments.edit', options)
54
- end
55
23
  end
56
24
  end
57
25
  end