slack-ruby-client 0.13.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (402) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/integration_test.yml +26 -0
  4. data/.github/workflows/lint.yml +14 -0
  5. data/.github/workflows/pr_lint.yml +21 -0
  6. data/.github/workflows/test.yml +36 -0
  7. data/.gitignore +5 -3
  8. data/.rubocop.yml +34 -5
  9. data/.rubocop_todo.yml +180 -46
  10. data/.ruby-version +1 -0
  11. data/CHANGELOG.md +119 -2
  12. data/CONTRIBUTING.md +23 -11
  13. data/Dangerfile +2 -0
  14. data/Gemfile +22 -5
  15. data/Gemfile.danger +6 -0
  16. data/LICENSE.md +1 -1
  17. data/README.md +236 -101
  18. data/RELEASING.md +2 -2
  19. data/Rakefile +2 -1
  20. data/UPGRADING.md +100 -2
  21. data/bin/commands/admin_analytics.rb +16 -0
  22. data/bin/commands/admin_apps.rb +51 -0
  23. data/bin/commands/admin_apps_approved.rb +17 -0
  24. data/bin/commands/admin_apps_requests.rb +28 -0
  25. data/bin/commands/admin_apps_restricted.rb +17 -0
  26. data/bin/commands/admin_audit_anomaly_allow.rb +23 -0
  27. data/bin/commands/admin_auth_policy.rb +39 -0
  28. data/bin/commands/admin_barriers.rb +47 -0
  29. data/bin/commands/admin_conversations.rb +171 -0
  30. data/bin/commands/admin_conversations_ekm.rb +17 -0
  31. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  32. data/bin/commands/admin_emoji.rb +54 -0
  33. data/bin/commands/admin_inviteRequests.rb +36 -0
  34. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  35. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  36. data/bin/commands/admin_teams.rb +27 -0
  37. data/bin/commands/admin_teams_admins.rb +16 -0
  38. data/bin/commands/admin_teams_owners.rb +16 -0
  39. data/bin/commands/admin_teams_settings.rb +64 -0
  40. data/bin/commands/admin_usergroups.rb +48 -0
  41. data/bin/commands/admin_users.rb +98 -0
  42. data/bin/commands/admin_users_session.rb +78 -0
  43. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  44. data/bin/commands/api.rb +1 -1
  45. data/bin/commands/apps.rb +15 -0
  46. data/bin/commands/apps_connections.rb +13 -0
  47. data/bin/commands/apps_event_authorizations.rb +16 -0
  48. data/bin/commands/apps_manifest.rb +52 -0
  49. data/bin/commands/auth.rb +1 -0
  50. data/bin/commands/auth_teams.rb +16 -0
  51. data/bin/commands/bookmarks.rb +53 -0
  52. data/bin/commands/bots.rb +2 -0
  53. data/bin/commands/calls.rb +52 -0
  54. data/bin/commands/calls_participants.rb +25 -0
  55. data/bin/commands/chat.rb +61 -14
  56. data/bin/commands/chat_scheduledMessages.rb +19 -0
  57. data/bin/commands/conversations.rb +82 -10
  58. data/bin/commands/dialog.rb +1 -0
  59. data/bin/commands/dnd.rb +6 -3
  60. data/bin/commands/emoji.rb +1 -0
  61. data/bin/commands/files.rb +34 -18
  62. data/bin/commands/files_comments.rb +1 -21
  63. data/bin/commands/files_remote.rb +78 -0
  64. data/bin/commands/migration.rb +2 -0
  65. data/bin/commands/oauth.rb +2 -14
  66. data/bin/commands/oauth_v2.rb +29 -0
  67. data/bin/commands/openid_connect.rb +27 -0
  68. data/bin/commands/pins.rb +3 -6
  69. data/bin/commands/reactions.rb +3 -3
  70. data/bin/commands/reminders.rb +7 -0
  71. data/bin/commands/rtm.rb +1 -15
  72. data/bin/commands/search.rb +6 -1
  73. data/bin/commands/stars.rb +8 -6
  74. data/bin/commands/team.rb +6 -0
  75. data/bin/commands/team_billing.rb +13 -0
  76. data/bin/commands/team_preferences.rb +13 -0
  77. data/bin/commands/team_profile.rb +1 -0
  78. data/bin/commands/tooling_tokens.rb +14 -0
  79. data/bin/commands/usergroups.rb +7 -1
  80. data/bin/commands/usergroups_users.rb +3 -0
  81. data/bin/commands/users.rb +6 -4
  82. data/bin/commands/users_admin.rb +1 -0
  83. data/bin/commands/users_prefs.rb +1 -0
  84. data/bin/commands/users_profile.rb +6 -5
  85. data/bin/commands/views.rb +50 -0
  86. data/bin/commands/workflows.rb +38 -0
  87. data/bin/commands.rb +41 -8
  88. data/bin/slack +3 -4
  89. data/examples/hi_real_time_and_web/Gemfile +1 -0
  90. data/examples/hi_real_time_and_web/hi.rb +7 -3
  91. data/examples/hi_real_time_async_async/Gemfile +1 -0
  92. data/examples/hi_real_time_async_async/hi.rb +6 -2
  93. data/examples/hi_web/Gemfile +1 -0
  94. data/examples/hi_web/hi.rb +1 -0
  95. data/examples/new_ticket/Gemfile +1 -0
  96. data/examples/new_ticket/new_ticket.rb +1 -0
  97. data/lib/slack/config.rb +2 -2
  98. data/lib/slack/events/config.rb +32 -0
  99. data/lib/slack/events/request.rb +72 -0
  100. data/lib/slack/logger.rb +6 -5
  101. data/lib/slack/messages/formatting.rb +1 -0
  102. data/lib/slack/messages/message.rb +1 -4
  103. data/lib/slack/real_time/api/message.rb +6 -3
  104. data/lib/slack/real_time/api/message_id.rb +1 -0
  105. data/lib/slack/real_time/api/ping.rb +5 -2
  106. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  107. data/lib/slack/real_time/api/typing.rb +5 -2
  108. data/lib/slack/real_time/client.rb +105 -54
  109. data/lib/slack/real_time/concurrency/async.rb +77 -6
  110. data/lib/slack/real_time/concurrency.rb +1 -2
  111. data/lib/slack/real_time/config.rb +9 -13
  112. data/lib/slack/real_time/models/base.rb +1 -4
  113. data/lib/slack/real_time/models/bot.rb +1 -0
  114. data/lib/slack/real_time/models/channel.rb +5 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/{group.rb → mpim.rb} +2 -1
  117. data/lib/slack/real_time/models/team.rb +1 -0
  118. data/lib/slack/real_time/models/user.rb +1 -0
  119. data/lib/slack/real_time/models.rb +3 -1
  120. data/lib/slack/real_time/socket.rb +45 -17
  121. data/lib/slack/real_time/stores/base.rb +28 -14
  122. data/lib/slack/real_time/stores/starter.rb +325 -297
  123. data/lib/slack/real_time/stores/store.rb +271 -196
  124. data/lib/slack/real_time/stores.rb +2 -7
  125. data/lib/slack/version.rb +2 -1
  126. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  127. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +51 -0
  130. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  131. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  132. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  133. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations.rb +264 -0
  135. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  136. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  137. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  139. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  140. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  141. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  143. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  144. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  145. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  146. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  147. data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
  148. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  149. data/lib/slack/web/api/endpoints/api.rb +2 -3
  150. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  151. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  152. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  153. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bookmarks.rb +88 -0
  157. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  158. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  159. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  160. data/lib/slack/web/api/endpoints/chat.rb +168 -65
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +182 -67
  163. data/lib/slack/web/api/endpoints/dialog.rb +5 -4
  164. data/lib/slack/web/api/endpoints/dnd.rb +9 -4
  165. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  166. data/lib/slack/web/api/endpoints/files.rb +69 -37
  167. data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/migration.rb +6 -3
  170. data/lib/slack/web/api/endpoints/oauth.rb +7 -31
  171. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  172. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  173. data/lib/slack/web/api/endpoints/pins.rb +11 -18
  174. data/lib/slack/web/api/endpoints/reactions.rb +22 -21
  175. data/lib/slack/web/api/endpoints/reminders.rb +23 -10
  176. data/lib/slack/web/api/endpoints/rtm.rb +3 -25
  177. data/lib/slack/web/api/endpoints/search.rb +31 -16
  178. data/lib/slack/web/api/endpoints/stars.rb +14 -11
  179. data/lib/slack/web/api/endpoints/team.rb +15 -4
  180. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  181. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  182. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  183. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  184. data/lib/slack/web/api/endpoints/usergroups.rb +31 -20
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +13 -8
  186. data/lib/slack/web/api/endpoints/users.rb +24 -23
  187. data/lib/slack/web/api/endpoints/users_admin.rb +3 -2
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +8 -7
  190. data/lib/slack/web/api/endpoints/views.rb +102 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/endpoints.rb +82 -18
  193. data/lib/slack/web/api/error.rb +1 -0
  194. data/lib/slack/web/api/errors/server_error.rb +37 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  197. data/lib/slack/web/api/errors.rb +1116 -0
  198. data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +5 -6
  199. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  200. data/lib/slack/web/api/mixins/users.id.rb +3 -4
  201. data/lib/slack/web/api/mixins/users.search.rb +3 -1
  202. data/lib/slack/web/api/mixins.rb +2 -2
  203. data/lib/slack/web/api/patches/chat.attachments-blocks.patch +69 -0
  204. data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
  205. data/lib/slack/web/api/patches/views.view-json.patch +55 -0
  206. data/lib/slack/web/api/templates/command.erb +1 -0
  207. data/lib/slack/web/api/templates/commands.erb +1 -0
  208. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  209. data/lib/slack/web/api/templates/errors.erb +20 -0
  210. data/lib/slack/web/api/templates/method.erb +6 -2
  211. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  212. data/lib/slack/web/client.rb +2 -1
  213. data/lib/slack/web/config.rb +5 -2
  214. data/lib/slack/web/faraday/connection.rb +24 -20
  215. data/lib/slack/web/faraday/request.rb +5 -1
  216. data/lib/slack/web/faraday/response/raise_error.rb +14 -7
  217. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  218. data/lib/slack/web/pagination/cursor.rb +7 -7
  219. data/lib/slack-ruby-client.rb +12 -5
  220. data/lib/slack.rb +1 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +1 -0
  223. data/lib/tasks/real_time.rake +51 -21
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +48 -12
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +7 -12
  228. data/spec/fixtures/slack/web/429_error.yml +50 -54
  229. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  230. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  231. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  234. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  235. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  236. data/spec/fixtures/slack/web/rtm_connect.yml +347 -26
  237. data/spec/fixtures/slack/web/users_info.yml +153 -69
  238. data/spec/fixtures/slack/web/users_list.yml +102 -41
  239. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  240. data/spec/integration/integration_spec.rb +115 -47
  241. data/spec/slack/config_spec.rb +2 -0
  242. data/spec/slack/events/config_spec.rb +35 -0
  243. data/spec/slack/events/request_spec.rb +188 -0
  244. data/spec/slack/messages/formatting_spec.rb +35 -13
  245. data/spec/slack/real_time/api/message_spec.rb +7 -2
  246. data/spec/slack/real_time/api/ping_spec.rb +3 -1
  247. data/spec/slack/real_time/api/typing_spec.rb +6 -2
  248. data/spec/slack/real_time/client_spec.rb +300 -142
  249. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  250. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  251. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  252. data/spec/slack/real_time/event_handlers/bot_spec.rb +20 -17
  253. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  254. data/spec/slack/real_time/event_handlers/im_spec.rb +31 -27
  255. data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +36 -27
  256. data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +31 -24
  257. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -7
  258. data/spec/slack/real_time/event_handlers/user_spec.rb +7 -5
  259. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  260. data/spec/slack/real_time/stores/store_spec.rb +50 -0
  261. data/spec/slack/slack_spec.rb +41 -6
  262. data/spec/slack/version_spec.rb +2 -1
  263. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  265. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +13 -0
  266. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  268. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
  269. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  270. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  271. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  273. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  274. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  275. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  276. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  277. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  278. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  279. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  280. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  281. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  282. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  283. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  284. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  285. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  287. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  288. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  289. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  290. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  291. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → auth_teams_spec.rb} +2 -1
  292. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  293. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  294. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  295. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  296. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  297. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +9 -7
  298. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +144 -40
  299. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +18 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
  302. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +112 -0
  303. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  304. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  305. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  306. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  307. data/spec/slack/web/api/endpoints/files_spec.rb +18 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  309. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
  310. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  311. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  312. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  314. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  315. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  317. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → team_billing_spec.rb} +2 -1
  319. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  320. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  322. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  323. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  324. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  325. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  326. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  327. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  328. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  329. data/spec/slack/web/api/error_spec.rb +7 -7
  330. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
  331. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  332. data/spec/slack/web/api/mixins/conversations_spec.rb +45 -0
  333. data/spec/slack/web/api/mixins/users_spec.rb +19 -8
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +47 -15
  335. data/spec/slack/web/client_spec.rb +199 -22
  336. data/spec/slack/web/faraday/request_spec.rb +80 -0
  337. data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
  338. data/spec/spec_helper.rb +9 -2
  339. data/spec/support/queue_with_timeout.rb +5 -4
  340. data/spec/support/real_time/concurrency/mock.rb +1 -0
  341. data/spec/support/real_time/connected_client.rb +6 -6
  342. data/spec/support/real_time/event.rb +1 -0
  343. data/spec/support/real_time/loaded_client.rb +120 -0
  344. data/spec/support/token.rb +1 -0
  345. data/spec/support/vcr.rb +37 -1
  346. metadata +174 -262
  347. data/.travis.yml +0 -32
  348. data/bin/commands/apps_permissions.rb +0 -22
  349. data/bin/commands/apps_permissions_resources.rb +0 -14
  350. data/bin/commands/apps_permissions_scopes.rb +0 -12
  351. data/bin/commands/apps_permissions_users.rb +0 -25
  352. data/bin/commands/channels.rb +0 -175
  353. data/bin/commands/groups.rb +0 -174
  354. data/bin/commands/im.rb +0 -67
  355. data/bin/commands/mpim.rb +0 -65
  356. data/examples/hi_real_time/Gemfile +0 -5
  357. data/examples/hi_real_time/hi.gif +0 -0
  358. data/examples/hi_real_time/hi.rb +0 -37
  359. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  360. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  361. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  362. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  363. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  364. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  365. data/lib/slack/real_time/concurrency/celluloid.rb +0 -118
  366. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
  367. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -35
  368. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -30
  369. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -20
  370. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -49
  371. data/lib/slack/web/api/endpoints/channels.rb +0 -266
  372. data/lib/slack/web/api/endpoints/groups.rb +0 -265
  373. data/lib/slack/web/api/endpoints/im.rb +0 -113
  374. data/lib/slack/web/api/endpoints/mpim.rb +0 -108
  375. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  376. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  377. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  378. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  379. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  380. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  381. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  382. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  383. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  384. data/screenshots/register-bot.png +0 -0
  385. data/spec/fixtures/slack/web/503_error.yml +0 -14
  386. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  387. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  388. data/spec/fixtures/slack/web/rtm_start.yml +0 -104
  389. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
  390. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  391. data/spec/slack/real_time/rtm_start_spec.rb +0 -13
  392. data/spec/slack/real_time/store_spec.rb +0 -11
  393. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  394. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -18
  395. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  396. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  397. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  398. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  399. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  400. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
  401. data/spec/slack/web/api/mixins/channels_spec.rb +0 -33
  402. data/spec/slack/web/api/mixins/groups_spec.rb +0 -33
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,31 +9,35 @@ 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 = {})
18
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
21
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
19
22
  post('usergroups.users.list', options)
20
23
  end
21
24
 
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 = {})
34
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
35
- throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
39
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
40
+ raise ArgumentError, 'Required arguments :users missing' if options[:users].nil?
36
41
  post('usergroups.users.update', options)
37
42
  end
38
43
  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,13 +9,15 @@ module Slack
8
9
  #
9
10
  # List conversations the calling user may access.
10
11
  #
11
- # @option options [Object] :cursor
12
+ # @option options [string] :cursor
12
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.
13
- # @option options [Object] :exclude_archived
14
+ # @option options [boolean] :exclude_archived
14
15
  # Set to true to exclude archived channels from the list.
15
- # @option options [Object] :limit
16
+ # @option options [number] :limit
16
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.
17
- # @option options [Object] :types
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
18
21
  # Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.
19
22
  # @option options [user] :user
20
23
  # Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership.
@@ -48,7 +51,6 @@ module Slack
48
51
  # @see https://api.slack.com/methods/users.getPresence
49
52
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.getPresence.json
50
53
  def users_getPresence(options = {})
51
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
52
54
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
53
55
  post('users.getPresence', options)
54
56
  end
@@ -67,12 +69,12 @@ module Slack
67
69
  #
68
70
  # @option options [user] :user
69
71
  # User to get info on.
70
- # @option options [Object] :include_locale
72
+ # @option options [boolean] :include_locale
71
73
  # Set this to true to receive the locale for this user. Defaults to false.
72
74
  # @see https://api.slack.com/methods/users.info
73
75
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.info.json
74
76
  def users_info(options = {})
75
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
77
+ raise ArgumentError, 'Required arguments :user missing' if options[:user].nil?
76
78
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
77
79
  post('users.info', options)
78
80
  end
@@ -80,14 +82,14 @@ module Slack
80
82
  #
81
83
  # Lists all users in a Slack team.
82
84
  #
83
- # @option options [Object] :cursor
85
+ # @option options [string] :cursor
84
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.
85
- # @option options [Object] :include_locale
87
+ # @option options [boolean] :include_locale
86
88
  # Set this to true to receive the locale for users. Defaults to false.
87
- # @option options [Object] :limit
88
- # 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.
89
- # @option options [Object] :presence
90
- # Deprecated. 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.
91
93
  # @see https://api.slack.com/methods/users.list
92
94
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.list.json
93
95
  def users_list(options = {})
@@ -103,12 +105,12 @@ module Slack
103
105
  #
104
106
  # Find a user with an email address.
105
107
  #
106
- # @option options [Object] :email
108
+ # @option options [string] :email
107
109
  # An email address belonging to a user in the workspace.
108
110
  # @see https://api.slack.com/methods/users.lookupByEmail
109
111
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.lookupByEmail.json
110
112
  def users_lookupByEmail(options = {})
111
- throw ArgumentError.new('Required arguments :email missing') if options[:email].nil?
113
+ raise ArgumentError, 'Required arguments :email missing' if options[:email].nil?
112
114
  post('users.lookupByEmail', options)
113
115
  end
114
116
 
@@ -124,30 +126,29 @@ module Slack
124
126
  #
125
127
  # Set the user profile photo
126
128
  #
127
- # @option options [Object] :image
128
- # File contents via multipart/form-data.
129
- # @option options [Object] :crop_w
129
+ # @option options [string] :crop_w
130
130
  # Width/height of crop box (always square).
131
- # @option options [Object] :crop_x
131
+ # @option options [string] :crop_x
132
132
  # X coordinate of top-left corner of crop box.
133
- # @option options [Object] :crop_y
133
+ # @option options [string] :crop_y
134
134
  # Y coordinate of top-left corner of crop box.
135
+ # @option options [Object] :image
136
+ # File contents via multipart/form-data.
135
137
  # @see https://api.slack.com/methods/users.setPhoto
136
138
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setPhoto.json
137
139
  def users_setPhoto(options = {})
138
- throw ArgumentError.new('Required arguments :image missing') if options[:image].nil?
139
140
  post('users.setPhoto', options)
140
141
  end
141
142
 
142
143
  #
143
144
  # Manually sets user presence.
144
145
  #
145
- # @option options [Object] :presence
146
+ # @option options [string] :presence
146
147
  # Either auto or away.
147
148
  # @see https://api.slack.com/methods/users.setPresence
148
149
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setPresence.json
149
150
  def users_setPresence(options = {})
150
- throw ArgumentError.new('Required arguments :presence missing') if options[:presence].nil?
151
+ raise ArgumentError, 'Required arguments :presence missing' if options[:presence].nil?
151
152
  post('users.setPresence', options)
152
153
  end
153
154
  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
@@ -24,7 +25,7 @@ module Slack
24
25
  # Invite a guest that can use one channel only
25
26
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/users.admin/users.admin.invite.json
26
27
  def users_admin_invite(options = {})
27
- throw ArgumentError.new('Required arguments :email missing') if options[:email].nil?
28
+ raise ArgumentError, 'Required arguments :email missing' if options[:email].nil?
28
29
  logger.warn('The users.admin.invite method is undocumented.')
29
30
  post('users.admin.invite', options)
30
31
  end
@@ -36,7 +37,7 @@ module Slack
36
37
  # User to disable
37
38
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/users.admin/users.admin.setInactive.json
38
39
  def users_admin_setInactive(options = {})
39
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
40
+ raise ArgumentError, 'Required arguments :user missing' if options[:user].nil?
40
41
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
41
42
  logger.warn('The users.admin.setInactive method is undocumented.')
42
43
  post('users.admin.setInactive', 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
@@ -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
+ # @option options [string] :profile
28
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,102 @@
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 [view as string] :view
13
+ # A view payload. This must be a JSON-encoded string.
14
+ # @option options [string] :trigger_id
15
+ # Exchange a trigger to post to the user.
16
+ # @option options [string] :interactivity_pointer
17
+ # Exchange an interactivity pointer to post to the user.
18
+ # @see https://api.slack.com/methods/views.open
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.open.json
20
+ def views_open(options = {})
21
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
22
+ raise ArgumentError, 'One of :trigger_id, :interactivity_pointer is required' unless options[:trigger_id].nil? ^ options[:interactivity_pointer].nil?
23
+ if options.key?(:view)
24
+ view = options[:view]
25
+ view = JSON.dump(view) unless view.is_a?(String)
26
+ options = options.merge(view: view)
27
+ end
28
+ post('views.open', options)
29
+ end
30
+
31
+ #
32
+ # Publish a static view for a User.
33
+ #
34
+ # @option options [string] :user_id
35
+ # id of the user you want publish a view to.
36
+ # @option options [view as string] :view
37
+ # A view payload. This must be a JSON-encoded string.
38
+ # @option options [string] :hash
39
+ # A string that represents view state to protect against possible race conditions.
40
+ # @see https://api.slack.com/methods/views.publish
41
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.publish.json
42
+ def views_publish(options = {})
43
+ raise ArgumentError, 'Required arguments :user_id missing' if options[:user_id].nil?
44
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
45
+ if options.key?(:view)
46
+ view = options[:view]
47
+ view = JSON.dump(view) unless view.is_a?(String)
48
+ options = options.merge(view: view)
49
+ end
50
+ post('views.publish', options)
51
+ end
52
+
53
+ #
54
+ # Push a view onto the stack of a root view.
55
+ #
56
+ # @option options [view as string] :view
57
+ # A view payload. This must be a JSON-encoded string.
58
+ # @option options [string] :trigger_id
59
+ # Exchange a trigger to post to the user.
60
+ # @option options [string] :interactivity_pointer
61
+ # Exchange an interactivity pointer to post to the user.
62
+ # @see https://api.slack.com/methods/views.push
63
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.push.json
64
+ def views_push(options = {})
65
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
66
+ raise ArgumentError, 'One of :trigger_id, :interactivity_pointer is required' unless options[:trigger_id].nil? ^ options[:interactivity_pointer].nil?
67
+ if options.key?(:view)
68
+ view = options[:view]
69
+ view = JSON.dump(view) unless view.is_a?(String)
70
+ options = options.merge(view: view)
71
+ end
72
+ post('views.push', options)
73
+ end
74
+
75
+ #
76
+ # Update an existing view.
77
+ #
78
+ # @option options [view as string] :view
79
+ # A view object. This must be a JSON-encoded string.
80
+ # @option options [string] :external_id
81
+ # 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.
82
+ # @option options [string] :view_id
83
+ # A unique identifier of the view to be updated. Either view_id or external_id is required.
84
+ # @option options [string] :hash
85
+ # A string that represents view state to protect against possible race conditions.
86
+ # @see https://api.slack.com/methods/views.update
87
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.update.json
88
+ def views_update(options = {})
89
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
90
+ raise ArgumentError, 'One of :external_id, :view_id is required' unless options[:external_id].nil? ^ options[:view_id].nil?
91
+ if options.key?(:view)
92
+ view = options[:view]
93
+ view = JSON.dump(view) unless view.is_a?(String)
94
+ options = options.merge(view: view)
95
+ end
96
+ post('views.update', options)
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
102
+ 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
+ raise ArgumentError, '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
+ raise ArgumentError, 'Required arguments :error missing' if options[:error].nil?
34
+ raise ArgumentError, '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
+ raise ArgumentError, '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,25 +1,53 @@
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_audit_anomaly_allow'
10
+ require_relative 'endpoints/admin_auth_policy'
11
+ require_relative 'endpoints/admin_barriers'
12
+ require_relative 'endpoints/admin_conversations'
13
+ require_relative 'endpoints/admin_conversations_ekm'
14
+ require_relative 'endpoints/admin_conversations_restrictAccess'
15
+ require_relative 'endpoints/admin_emoji'
16
+ require_relative 'endpoints/admin_inviteRequests'
17
+ require_relative 'endpoints/admin_inviteRequests_approved'
18
+ require_relative 'endpoints/admin_inviteRequests_denied'
19
+ require_relative 'endpoints/admin_teams'
20
+ require_relative 'endpoints/admin_teams_admins'
21
+ require_relative 'endpoints/admin_teams_owners'
22
+ require_relative 'endpoints/admin_teams_settings'
23
+ require_relative 'endpoints/admin_usergroups'
24
+ require_relative 'endpoints/admin_users'
25
+ require_relative 'endpoints/admin_users_session'
26
+ require_relative 'endpoints/admin_users_unsupportedVersions'
3
27
  require_relative 'endpoints/api'
4
- require_relative 'endpoints/apps_permissions'
5
- require_relative 'endpoints/apps_permissions_resources'
6
- require_relative 'endpoints/apps_permissions_scopes'
7
- require_relative 'endpoints/apps_permissions_users'
28
+ require_relative 'endpoints/apps'
29
+ require_relative 'endpoints/apps_connections'
30
+ require_relative 'endpoints/apps_event_authorizations'
31
+ require_relative 'endpoints/apps_manifest'
8
32
  require_relative 'endpoints/auth'
33
+ require_relative 'endpoints/auth_teams'
34
+ require_relative 'endpoints/bookmarks'
9
35
  require_relative 'endpoints/bots'
10
- require_relative 'endpoints/channels'
36
+ require_relative 'endpoints/calls'
37
+ require_relative 'endpoints/calls_participants'
11
38
  require_relative 'endpoints/chat'
39
+ require_relative 'endpoints/chat_scheduledMessages'
12
40
  require_relative 'endpoints/conversations'
13
41
  require_relative 'endpoints/dialog'
14
42
  require_relative 'endpoints/dnd'
15
43
  require_relative 'endpoints/emoji'
16
44
  require_relative 'endpoints/files'
17
45
  require_relative 'endpoints/files_comments'
18
- require_relative 'endpoints/groups'
19
- require_relative 'endpoints/im'
46
+ require_relative 'endpoints/files_remote'
20
47
  require_relative 'endpoints/migration'
21
- require_relative 'endpoints/mpim'
22
48
  require_relative 'endpoints/oauth'
49
+ require_relative 'endpoints/oauth_v2'
50
+ require_relative 'endpoints/openid_connect'
23
51
  require_relative 'endpoints/pins'
24
52
  require_relative 'endpoints/reactions'
25
53
  require_relative 'endpoints/reminders'
@@ -27,42 +55,73 @@ require_relative 'endpoints/rtm'
27
55
  require_relative 'endpoints/search'
28
56
  require_relative 'endpoints/stars'
29
57
  require_relative 'endpoints/team'
58
+ require_relative 'endpoints/team_billing'
59
+ require_relative 'endpoints/team_preferences'
30
60
  require_relative 'endpoints/team_profile'
61
+ require_relative 'endpoints/tooling_tokens'
31
62
  require_relative 'endpoints/usergroups'
32
63
  require_relative 'endpoints/usergroups_users'
33
64
  require_relative 'endpoints/users'
34
65
  require_relative 'endpoints/users_admin'
35
66
  require_relative 'endpoints/users_prefs'
36
67
  require_relative 'endpoints/users_profile'
68
+ require_relative 'endpoints/views'
69
+ require_relative 'endpoints/workflows'
37
70
 
38
71
  module Slack
39
72
  module Web
40
73
  module Api
41
74
  module Endpoints
42
- include Slack::Web::Api::Mixins::Channels
75
+ include Slack::Web::Api::Mixins::Conversations
43
76
  include Slack::Web::Api::Mixins::Users
44
- include Slack::Web::Api::Mixins::Groups
45
77
 
78
+ include AdminAnalytics
79
+ include AdminApps
80
+ include AdminAppsApproved
81
+ include AdminAppsRequests
82
+ include AdminAppsRestricted
83
+ include AdminAuditAnomalyAllow
84
+ include AdminAuthPolicy
85
+ include AdminBarriers
86
+ include AdminConversations
87
+ include AdminConversationsEkm
88
+ include AdminConversationsRestrictaccess
89
+ include AdminEmoji
90
+ include AdminInviterequests
91
+ include AdminInviterequestsApproved
92
+ include AdminInviterequestsDenied
93
+ include AdminTeams
94
+ include AdminTeamsAdmins
95
+ include AdminTeamsOwners
96
+ include AdminTeamsSettings
97
+ include AdminUsergroups
98
+ include AdminUsers
99
+ include AdminUsersSession
100
+ include AdminUsersUnsupportedversions
46
101
  include Api
47
- include AppsPermissions
48
- include AppsPermissionsResources
49
- include AppsPermissionsScopes
50
- include AppsPermissionsUsers
102
+ include Apps
103
+ include AppsConnections
104
+ include AppsEventAuthorizations
105
+ include AppsManifest
51
106
  include Auth
107
+ include AuthTeams
108
+ include Bookmarks
52
109
  include Bots
53
- include Channels
110
+ include Calls
111
+ include CallsParticipants
54
112
  include Chat
113
+ include ChatScheduledmessages
55
114
  include Conversations
56
115
  include Dialog
57
116
  include Dnd
58
117
  include Emoji
59
118
  include Files
60
119
  include FilesComments
61
- include Groups
62
- include Im
120
+ include FilesRemote
63
121
  include Migration
64
- include Mpim
65
122
  include Oauth
123
+ include OauthV2
124
+ include OpenidConnect
66
125
  include Pins
67
126
  include Reactions
68
127
  include Reminders
@@ -70,13 +129,18 @@ module Slack
70
129
  include Search
71
130
  include Stars
72
131
  include Team
132
+ include TeamBilling
133
+ include TeamPreferences
73
134
  include TeamProfile
135
+ include ToolingTokens
74
136
  include Usergroups
75
137
  include UsergroupsUsers
76
138
  include Users
77
139
  include UsersAdmin
78
140
  include UsersPrefs
79
141
  include UsersProfile
142
+ include Views
143
+ include Workflows
80
144
  end
81
145
  end
82
146
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module Web
3
4
  module Api
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+ module Slack
3
+ module Web
4
+ module Api
5
+ module Errors
6
+ class ServerError < ::Faraday::Error
7
+ attr_reader :response
8
+
9
+ def initialize(message, response)
10
+ @response = response
11
+ super message
12
+ end
13
+ end
14
+
15
+ class ParsingError < ServerError
16
+ def initialize(response)
17
+ super('parsing_error', response)
18
+ end
19
+ end
20
+
21
+ class HttpRequestError < ServerError; end
22
+
23
+ class TimeoutError < HttpRequestError
24
+ def initialize(response)
25
+ super('timeout_error', response)
26
+ end
27
+ end
28
+
29
+ class UnavailableError < HttpRequestError
30
+ def initialize(response)
31
+ super('unavailable_error', response)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module Web
3
4
  module Api
@@ -6,8 +7,20 @@ module Slack
6
7
  attr_reader :response
7
8
 
8
9
  def initialize(message, response = nil)
9
- @response = response
10
10
  super message
11
+ @response = response
12
+ end
13
+
14
+ def error
15
+ response.body.error
16
+ end
17
+
18
+ def errors
19
+ response.body.errors
20
+ end
21
+
22
+ def response_metadata
23
+ response.body.response_metadata
11
24
  end
12
25
  end
13
26
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module Web
3
4
  module Api
@@ -7,10 +8,7 @@ module Slack
7
8
 
8
9
  def initialize(response)
9
10
  @response = response
10
- end
11
-
12
- def message
13
- "Retry after #{retry_after} seconds"
11
+ super "Retry after #{retry_after} seconds"
14
12
  end
15
13
 
16
14
  def retry_after