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
@@ -0,0 +1,24 @@
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 ToolingTokens
9
+ #
10
+ # Exchanges a refresh token for a new app configuration token.
11
+ #
12
+ # @option options [string] :refresh_token
13
+ # The xoxe refresh token that was issued along with the old app configuration token.
14
+ # @see https://api.slack.com/methods/tooling.tokens.rotate
15
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/tooling.tokens/tooling.tokens.rotate.json
16
+ def tooling_tokens_rotate(options = {})
17
+ throw ArgumentError.new('Required arguments :refresh_token missing') if options[:refresh_token].nil?
18
+ post('tooling.tokens.rotate', options)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ 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,16 +9,18 @@ module Slack
8
9
  #
9
10
  # Create a User Group
10
11
  #
11
- # @option options [Object] :name
12
+ # @option options [string] :name
12
13
  # A name for the User Group. Must be unique among User Groups.
13
- # @option options [Object] :channels
14
+ # @option options [array] :channels
14
15
  # A comma separated string of encoded channel IDs for which the User Group uses as a default.
15
- # @option options [Object] :description
16
+ # @option options [string] :description
16
17
  # A short description of the User Group.
17
- # @option options [Object] :handle
18
+ # @option options [string] :handle
18
19
  # A mention handle. Must be unique among channels, users and User Groups.
19
- # @option options [Object] :include_count
20
+ # @option options [boolean] :include_count
20
21
  # Include the number of users in each User Group.
22
+ # @option options [string] :team_id
23
+ # Encoded team id where the user group has to be created, required if org token is used.
21
24
  # @see https://api.slack.com/methods/usergroups.create
22
25
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.create.json
23
26
  def usergroups_create(options = {})
@@ -30,8 +33,10 @@ module Slack
30
33
  #
31
34
  # @option options [Object] :usergroup
32
35
  # The encoded ID of the User Group to disable.
33
- # @option options [Object] :include_count
36
+ # @option options [boolean] :include_count
34
37
  # Include the number of users in the User Group.
38
+ # @option options [Object] :team_id
39
+ # Encoded team id where the user group is, required if org token is used.
35
40
  # @see https://api.slack.com/methods/usergroups.disable
36
41
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.disable.json
37
42
  def usergroups_disable(options = {})
@@ -42,10 +47,12 @@ module Slack
42
47
  #
43
48
  # Enable a User Group
44
49
  #
45
- # @option options [Object] :usergroup
50
+ # @option options [string] :usergroup
46
51
  # The encoded ID of the User Group to enable.
47
- # @option options [Object] :include_count
52
+ # @option options [boolean] :include_count
48
53
  # Include the number of users in the User Group.
54
+ # @option options [string] :team_id
55
+ # Encoded team id where the user group is, required if org token is used.
49
56
  # @see https://api.slack.com/methods/usergroups.enable
50
57
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.enable.json
51
58
  def usergroups_enable(options = {})
@@ -56,12 +63,14 @@ module Slack
56
63
  #
57
64
  # List all User Groups for a team
58
65
  #
59
- # @option options [Object] :include_count
66
+ # @option options [boolean] :include_count
60
67
  # Include the number of users in each User Group.
61
- # @option options [Object] :include_disabled
68
+ # @option options [boolean] :include_disabled
62
69
  # Include disabled User Groups.
63
- # @option options [Object] :include_users
70
+ # @option options [boolean] :include_users
64
71
  # Include the list of users for each User Group.
72
+ # @option options [string] :team_id
73
+ # encoded team id to list user groups in, required if org token is used.
65
74
  # @see https://api.slack.com/methods/usergroups.list
66
75
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.list.json
67
76
  def usergroups_list(options = {})
@@ -73,16 +82,18 @@ module Slack
73
82
  #
74
83
  # @option options [Object] :usergroup
75
84
  # The encoded ID of the User Group to update.
76
- # @option options [Object] :channels
85
+ # @option options [array] :channels
77
86
  # A comma separated string of encoded channel IDs for which the User Group uses as a default.
78
- # @option options [Object] :description
87
+ # @option options [string] :description
79
88
  # A short description of the User Group.
80
- # @option options [Object] :handle
89
+ # @option options [string] :handle
81
90
  # A mention handle. Must be unique among channels, users and User Groups.
82
- # @option options [Object] :include_count
91
+ # @option options [boolean] :include_count
83
92
  # Include the number of users in the User Group.
84
- # @option options [Object] :name
93
+ # @option options [string] :name
85
94
  # A name for the User Group. Must be unique among User Groups.
95
+ # @option options [Object] :team_id
96
+ # encoded team id where the user group exists, required if org token is used.
86
97
  # @see https://api.slack.com/methods/usergroups.update
87
98
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.update.json
88
99
  def usergroups_update(options = {})
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,10 +9,12 @@ module Slack
8
9
  #
9
10
  # List all users in a User Group
10
11
  #
11
- # @option options [Object] :usergroup
12
+ # @option options [string] :usergroup
12
13
  # The encoded ID of the User Group to update.
13
- # @option options [Object] :include_disabled
14
+ # @option options [boolean] :include_disabled
14
15
  # Allow results that involve disabled User Groups.
16
+ # @option options [string] :team_id
17
+ # encoded team id where the user group exists, required if org token is used.
15
18
  # @see https://api.slack.com/methods/usergroups.users.list
16
19
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups.users/usergroups.users.list.json
17
20
  def usergroups_users_list(options = {})
@@ -22,12 +25,14 @@ module Slack
22
25
  #
23
26
  # Update the list of users for a User Group
24
27
  #
25
- # @option options [Object] :usergroup
28
+ # @option options [string] :usergroup
26
29
  # The encoded ID of the User Group to update.
27
- # @option options [Object] :users
30
+ # @option options [array] :users
28
31
  # A comma separated string of encoded user IDs that represent the entire list of users for the User Group.
29
- # @option options [Object] :include_count
32
+ # @option options [boolean] :include_count
30
33
  # Include the number of users in the User Group.
34
+ # @option options [string] :team_id
35
+ # encoded team id where the user group exists, required if org token is used.
31
36
  # @see https://api.slack.com/methods/usergroups.users.update
32
37
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups.users/usergroups.users.update.json
33
38
  def usergroups_users_update(options = {})
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -5,6 +6,34 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module Users
9
+ #
10
+ # List conversations the calling user may access.
11
+ #
12
+ # @option options [string] :cursor
13
+ # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
14
+ # @option options [boolean] :exclude_archived
15
+ # Set to true to exclude archived channels from the list.
16
+ # @option options [number] :limit
17
+ # 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.
18
+ # @option options [string] :team_id
19
+ # encoded team id to list conversations in, required if org token is used.
20
+ # @option options [string] :types
21
+ # Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.
22
+ # @option options [user] :user
23
+ # Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership.
24
+ # @see https://api.slack.com/methods/users.conversations
25
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.conversations.json
26
+ def users_conversations(options = {})
27
+ options = options.merge(user: users_id(options)['user']['id']) if options[:user]
28
+ if block_given?
29
+ Pagination::Cursor.new(self, :users_conversations, options).each do |page|
30
+ yield page
31
+ end
32
+ else
33
+ post('users.conversations', options)
34
+ end
35
+ end
36
+
8
37
  #
9
38
  # Delete the user profile photo
10
39
  #
@@ -22,7 +51,6 @@ module Slack
22
51
  # @see https://api.slack.com/methods/users.getPresence
23
52
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.getPresence.json
24
53
  def users_getPresence(options = {})
25
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
26
54
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
27
55
  post('users.getPresence', options)
28
56
  end
@@ -41,7 +69,7 @@ module Slack
41
69
  #
42
70
  # @option options [user] :user
43
71
  # User to get info on.
44
- # @option options [Object] :include_locale
72
+ # @option options [boolean] :include_locale
45
73
  # Set this to true to receive the locale for this user. Defaults to false.
46
74
  # @see https://api.slack.com/methods/users.info
47
75
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.info.json
@@ -54,14 +82,14 @@ module Slack
54
82
  #
55
83
  # Lists all users in a Slack team.
56
84
  #
57
- # @option options [Object] :cursor
85
+ # @option options [string] :cursor
58
86
  # 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.
59
- # @option options [Object] :include_locale
87
+ # @option options [boolean] :include_locale
60
88
  # Set this to true to receive the locale for users. Defaults to false.
61
- # @option options [Object] :limit
62
- # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
63
- # @option options [Object] :presence
64
- # Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.
89
+ # @option options [number] :limit
90
+ # 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. Providing no limit value will result in Slack attempting to deliver you the entire result set. If the collection is too large you may experience limit_required or HTTP 500 errors.
91
+ # @option options [string] :team_id
92
+ # encoded team id to list users in, required if org token is used.
65
93
  # @see https://api.slack.com/methods/users.list
66
94
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.list.json
67
95
  def users_list(options = {})
@@ -77,7 +105,7 @@ module Slack
77
105
  #
78
106
  # Find a user with an email address.
79
107
  #
80
- # @option options [Object] :email
108
+ # @option options [string] :email
81
109
  # An email address belonging to a user in the workspace.
82
110
  # @see https://api.slack.com/methods/users.lookupByEmail
83
111
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.lookupByEmail.json
@@ -87,7 +115,7 @@ module Slack
87
115
  end
88
116
 
89
117
  #
90
- # Marks a user as active.
118
+ # Marked a user as active. Deprecated and non-functional.
91
119
  #
92
120
  # @see https://api.slack.com/methods/users.setActive
93
121
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setActive.json
@@ -98,25 +126,24 @@ module Slack
98
126
  #
99
127
  # Set the user profile photo
100
128
  #
101
- # @option options [Object] :image
102
- # File contents via multipart/form-data.
103
- # @option options [Object] :crop_w
129
+ # @option options [string] :crop_w
104
130
  # Width/height of crop box (always square).
105
- # @option options [Object] :crop_x
131
+ # @option options [string] :crop_x
106
132
  # X coordinate of top-left corner of crop box.
107
- # @option options [Object] :crop_y
133
+ # @option options [string] :crop_y
108
134
  # Y coordinate of top-left corner of crop box.
135
+ # @option options [string] :image
136
+ # File contents via multipart/form-data.
109
137
  # @see https://api.slack.com/methods/users.setPhoto
110
138
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setPhoto.json
111
139
  def users_setPhoto(options = {})
112
- throw ArgumentError.new('Required arguments :image missing') if options[:image].nil?
113
140
  post('users.setPhoto', options)
114
141
  end
115
142
 
116
143
  #
117
144
  # Manually sets user presence.
118
145
  #
119
- # @option options [Object] :presence
146
+ # @option options [string] :presence
120
147
  # Either auto or away.
121
148
  # @see https://api.slack.com/methods/users.setPresence
122
149
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setPresence.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
@@ -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
@@ -6,10 +7,10 @@ module Slack
6
7
  module Endpoints
7
8
  module UsersProfile
8
9
  #
9
- # Retrieves a user's profile information.
10
+ # Retrieve a user's profile information, including their custom status.
10
11
  #
11
- # @option options [Object] :include_labels
12
- # Include labels for each ID in custom profile fields.
12
+ # @option options [boolean] :include_labels
13
+ # Include labels for each ID in custom profile fields. Using this parameter will heavily rate-limit your requests and is not recommended.
13
14
  # @option options [user] :user
14
15
  # User to retrieve profile info for.
15
16
  # @see https://api.slack.com/methods/users.profile.get
@@ -20,15 +21,15 @@ module Slack
20
21
  end
21
22
 
22
23
  #
23
- # Set the profile information for a user.
24
+ # Set a user's profile information, including custom status.
24
25
  #
25
- # @option options [Object] :name
26
+ # @option options [string] :name
26
27
  # Name of a single key to set. Usable only if profile is not passed.
27
- # @option options [Object] :profile
28
- # Collection of key:value pairs presented as a URL-encoded JSON hash.
28
+ # @option options [string] :profile
29
+ # Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters.
29
30
  # @option options [user] :user
30
31
  # ID of user to change. This argument may only be specified by team admins on paid teams.
31
- # @option options [Object] :value
32
+ # @option options [string] :value
32
33
  # Value to set a single key to. Usable only if profile is not passed.
33
34
  # @see https://api.slack.com/methods/users.profile.set
34
35
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users.profile/users.profile.set.json
@@ -0,0 +1,97 @@
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 Views
9
+ #
10
+ # Open a view for a user.
11
+ #
12
+ # @option options [string] :trigger_id
13
+ # Exchange a trigger to post to the user.
14
+ # @option options [view as string] :view
15
+ # A view payload. This must be a JSON-encoded string.
16
+ # @see https://api.slack.com/methods/views.open
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.open.json
18
+ def views_open(options = {})
19
+ throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
20
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
21
+ if options.key?(:view)
22
+ view = options[:view]
23
+ view = JSON.dump(view) unless view.is_a?(String)
24
+ options = options.merge(view: view)
25
+ end
26
+ post('views.open', options)
27
+ end
28
+
29
+ #
30
+ # Publish a static view for a User.
31
+ #
32
+ # @option options [string] :user_id
33
+ # id of the user you want publish a view to.
34
+ # @option options [view as string] :view
35
+ # A view payload. This must be a JSON-encoded string.
36
+ # @option options [string] :hash
37
+ # A string that represents view state to protect against possible race conditions.
38
+ # @see https://api.slack.com/methods/views.publish
39
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.publish.json
40
+ def views_publish(options = {})
41
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
42
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
43
+ if options.key?(:view)
44
+ view = options[:view]
45
+ view = JSON.dump(view) unless view.is_a?(String)
46
+ options = options.merge(view: view)
47
+ end
48
+ post('views.publish', options)
49
+ end
50
+
51
+ #
52
+ # Push a view onto the stack of a root view.
53
+ #
54
+ # @option options [string] :trigger_id
55
+ # Exchange a trigger to post to the user.
56
+ # @option options [view as string] :view
57
+ # A view payload. This must be a JSON-encoded string.
58
+ # @see https://api.slack.com/methods/views.push
59
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.push.json
60
+ def views_push(options = {})
61
+ throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
62
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
63
+ if options.key?(:view)
64
+ view = options[:view]
65
+ view = JSON.dump(view) unless view.is_a?(String)
66
+ options = options.merge(view: view)
67
+ end
68
+ post('views.push', options)
69
+ end
70
+
71
+ #
72
+ # Update an existing view.
73
+ #
74
+ # @option options [view as string] :view
75
+ # A view object. This must be a JSON-encoded string.
76
+ # @option options [string] :external_id
77
+ # A unique identifier of the view set by the developer. Must be unique for all views on a team. Max length of 255 characters. Either view_id or external_id is required.
78
+ # @option options [string] :view_id
79
+ # A unique identifier of the view to be updated. Either view_id or external_id is required.
80
+ # @option options [string] :hash
81
+ # A string that represents view state to protect against possible race conditions.
82
+ # @see https://api.slack.com/methods/views.update
83
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.update.json
84
+ def views_update(options = {})
85
+ throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
86
+ if options.key?(:view)
87
+ view = options[:view]
88
+ view = JSON.dump(view) unless view.is_a?(String)
89
+ options = options.merge(view: view)
90
+ end
91
+ post('views.update', options)
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,61 @@
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 Workflows
9
+ #
10
+ # Indicate that an app's step in a workflow completed execution.
11
+ #
12
+ # @option options [string] :workflow_step_execute_id
13
+ # Context identifier that maps to the correct workflow step execution.
14
+ # @option options [object] :outputs
15
+ # Key-value object of outputs from your step. Keys of this object reflect the configured key properties of your outputs array from your workflow_step object.
16
+ # @see https://api.slack.com/methods/workflows.stepCompleted
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows/workflows.stepCompleted.json
18
+ def workflows_stepCompleted(options = {})
19
+ throw ArgumentError.new('Required arguments :workflow_step_execute_id missing') if options[:workflow_step_execute_id].nil?
20
+ post('workflows.stepCompleted', options)
21
+ end
22
+
23
+ #
24
+ # Indicate that an app's step in a workflow failed to execute.
25
+ #
26
+ # @option options [object] :error
27
+ # A JSON-based object with a message property that should contain a human readable error message.
28
+ # @option options [string] :workflow_step_execute_id
29
+ # Context identifier that maps to the correct workflow step execution.
30
+ # @see https://api.slack.com/methods/workflows.stepFailed
31
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows/workflows.stepFailed.json
32
+ def workflows_stepFailed(options = {})
33
+ throw ArgumentError.new('Required arguments :error missing') if options[:error].nil?
34
+ throw ArgumentError.new('Required arguments :workflow_step_execute_id missing') if options[:workflow_step_execute_id].nil?
35
+ post('workflows.stepFailed', options)
36
+ end
37
+
38
+ #
39
+ # Update the configuration for a workflow step.
40
+ #
41
+ # @option options [string] :workflow_step_edit_id
42
+ # A context identifier provided with view_submission payloads used to call back to workflows.updateStep.
43
+ # @option options [object] :inputs
44
+ # A JSON key-value map of inputs required from a user during configuration. This is the data your app expects to receive when the workflow step starts. Please note: the embedded variable format is set and replaced by the workflow system. You cannot create custom variables that will be replaced at runtime. Read more about variables in workflow steps here.
45
+ # @option options [array] :outputs
46
+ # An JSON array of output objects used during step execution. This is the data your app agrees to provide when your workflow step was executed.
47
+ # @option options [string] :step_image_url
48
+ # An optional field that can be used to override app image that is shown in the Workflow Builder.
49
+ # @option options [string] :step_name
50
+ # An optional field that can be used to override the step name that is shown in the Workflow Builder.
51
+ # @see https://api.slack.com/methods/workflows.updateStep
52
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows/workflows.updateStep.json
53
+ def workflows_updateStep(options = {})
54
+ throw ArgumentError.new('Required arguments :workflow_step_edit_id missing') if options[:workflow_step_edit_id].nil?
55
+ post('workflows.updateStep', options)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -1,22 +1,52 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
4
+ require_relative 'endpoints/admin_analytics'
5
+ require_relative 'endpoints/admin_apps'
6
+ require_relative 'endpoints/admin_apps_approved'
7
+ require_relative 'endpoints/admin_apps_requests'
8
+ require_relative 'endpoints/admin_apps_restricted'
9
+ require_relative 'endpoints/admin_auth_policy'
10
+ require_relative 'endpoints/admin_barriers'
11
+ require_relative 'endpoints/admin_conversations'
12
+ require_relative 'endpoints/admin_conversations_ekm'
13
+ require_relative 'endpoints/admin_conversations_restrictAccess'
14
+ require_relative 'endpoints/admin_emoji'
15
+ require_relative 'endpoints/admin_inviteRequests'
16
+ require_relative 'endpoints/admin_inviteRequests_approved'
17
+ require_relative 'endpoints/admin_inviteRequests_denied'
18
+ require_relative 'endpoints/admin_teams'
19
+ require_relative 'endpoints/admin_teams_admins'
20
+ require_relative 'endpoints/admin_teams_owners'
21
+ require_relative 'endpoints/admin_teams_settings'
22
+ require_relative 'endpoints/admin_usergroups'
23
+ require_relative 'endpoints/admin_users'
24
+ require_relative 'endpoints/admin_users_session'
25
+ require_relative 'endpoints/admin_users_unsupportedVersions'
3
26
  require_relative 'endpoints/api'
4
- require_relative 'endpoints/apps_permissions'
27
+ require_relative 'endpoints/apps'
28
+ require_relative 'endpoints/apps_connections'
29
+ require_relative 'endpoints/apps_event_authorizations'
30
+ require_relative 'endpoints/apps_manifest'
5
31
  require_relative 'endpoints/auth'
32
+ require_relative 'endpoints/auth_teams'
33
+ require_relative 'endpoints/bookmarks'
6
34
  require_relative 'endpoints/bots'
7
- require_relative 'endpoints/channels'
35
+ require_relative 'endpoints/calls'
36
+ require_relative 'endpoints/calls_participants'
8
37
  require_relative 'endpoints/chat'
38
+ require_relative 'endpoints/chat_scheduledMessages'
9
39
  require_relative 'endpoints/conversations'
10
40
  require_relative 'endpoints/dialog'
11
41
  require_relative 'endpoints/dnd'
12
42
  require_relative 'endpoints/emoji'
13
43
  require_relative 'endpoints/files'
14
44
  require_relative 'endpoints/files_comments'
15
- require_relative 'endpoints/groups'
16
- require_relative 'endpoints/im'
45
+ require_relative 'endpoints/files_remote'
17
46
  require_relative 'endpoints/migration'
18
- require_relative 'endpoints/mpim'
19
47
  require_relative 'endpoints/oauth'
48
+ require_relative 'endpoints/oauth_v2'
49
+ require_relative 'endpoints/openid_connect'
20
50
  require_relative 'endpoints/pins'
21
51
  require_relative 'endpoints/reactions'
22
52
  require_relative 'endpoints/reminders'
@@ -24,39 +54,72 @@ require_relative 'endpoints/rtm'
24
54
  require_relative 'endpoints/search'
25
55
  require_relative 'endpoints/stars'
26
56
  require_relative 'endpoints/team'
57
+ require_relative 'endpoints/team_billing'
58
+ require_relative 'endpoints/team_preferences'
27
59
  require_relative 'endpoints/team_profile'
60
+ require_relative 'endpoints/tooling_tokens'
28
61
  require_relative 'endpoints/usergroups'
29
62
  require_relative 'endpoints/usergroups_users'
30
63
  require_relative 'endpoints/users'
31
64
  require_relative 'endpoints/users_admin'
32
65
  require_relative 'endpoints/users_prefs'
33
66
  require_relative 'endpoints/users_profile'
67
+ require_relative 'endpoints/views'
68
+ require_relative 'endpoints/workflows'
34
69
 
35
70
  module Slack
36
71
  module Web
37
72
  module Api
38
73
  module Endpoints
39
- include Slack::Web::Api::Mixins::Channels
74
+ include Slack::Web::Api::Mixins::Conversations
40
75
  include Slack::Web::Api::Mixins::Users
41
- include Slack::Web::Api::Mixins::Groups
42
76
 
77
+ include AdminAnalytics
78
+ include AdminApps
79
+ include AdminAppsApproved
80
+ include AdminAppsRequests
81
+ include AdminAppsRestricted
82
+ include AdminAuthPolicy
83
+ include AdminBarriers
84
+ include AdminConversations
85
+ include AdminConversationsEkm
86
+ include AdminConversationsRestrictaccess
87
+ include AdminEmoji
88
+ include AdminInviterequests
89
+ include AdminInviterequestsApproved
90
+ include AdminInviterequestsDenied
91
+ include AdminTeams
92
+ include AdminTeamsAdmins
93
+ include AdminTeamsOwners
94
+ include AdminTeamsSettings
95
+ include AdminUsergroups
96
+ include AdminUsers
97
+ include AdminUsersSession
98
+ include AdminUsersUnsupportedversions
43
99
  include Api
44
- include AppsPermissions
100
+ include Apps
101
+ include AppsConnections
102
+ include AppsEventAuthorizations
103
+ include AppsManifest
45
104
  include Auth
105
+ include AuthTeams
106
+ include Bookmarks
46
107
  include Bots
47
- include Channels
108
+ include Calls
109
+ include CallsParticipants
48
110
  include Chat
111
+ include ChatScheduledmessages
49
112
  include Conversations
50
113
  include Dialog
51
114
  include Dnd
52
115
  include Emoji
53
116
  include Files
54
117
  include FilesComments
55
- include Groups
56
- include Im
118
+ include FilesRemote
57
119
  include Migration
58
- include Mpim
59
120
  include Oauth
121
+ include OauthV2
122
+ include OpenidConnect
60
123
  include Pins
61
124
  include Reactions
62
125
  include Reminders
@@ -64,13 +127,18 @@ module Slack
64
127
  include Search
65
128
  include Stars
66
129
  include Team
130
+ include TeamBilling
131
+ include TeamPreferences
67
132
  include TeamProfile
133
+ include ToolingTokens
68
134
  include Usergroups
69
135
  include UsergroupsUsers
70
136
  include Users
71
137
  include UsersAdmin
72
138
  include UsersPrefs
73
139
  include UsersProfile
140
+ include Views
141
+ include Workflows
74
142
  end
75
143
  end
76
144
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module Web
3
4
  module Api