slack-ruby-client 0.7.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +2 -0
  4. data/.gitmodules +1 -1
  5. data/.rubocop.yml +37 -1
  6. data/.rubocop_todo.yml +130 -47
  7. data/.travis.yml +17 -13
  8. data/CHANGELOG.md +254 -43
  9. data/CONTRIBUTING.md +26 -15
  10. data/Dangerfile +3 -0
  11. data/Gemfile +13 -2
  12. data/LICENSE.md +1 -1
  13. data/README.md +287 -63
  14. data/RELEASING.md +22 -14
  15. data/Rakefile +2 -1
  16. data/UPGRADING.md +129 -5
  17. data/bin/commands/admin_analytics.rb +16 -0
  18. data/bin/commands/admin_apps.rb +51 -0
  19. data/bin/commands/admin_apps_approved.rb +17 -0
  20. data/bin/commands/admin_apps_requests.rb +17 -0
  21. data/bin/commands/admin_apps_restricted.rb +17 -0
  22. data/bin/commands/admin_auth_policy.rb +39 -0
  23. data/bin/commands/admin_barriers.rb +47 -0
  24. data/bin/commands/admin_conversations.rb +169 -0
  25. data/bin/commands/admin_conversations_ekm.rb +17 -0
  26. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  27. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  28. data/bin/commands/admin_emoji.rb +54 -0
  29. data/bin/commands/admin_inviteRequests.rb +36 -0
  30. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  31. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  32. data/bin/commands/admin_teams.rb +27 -0
  33. data/bin/commands/admin_teams_admins.rb +16 -0
  34. data/bin/commands/admin_teams_owners.rb +16 -0
  35. data/bin/commands/admin_teams_settings.rb +64 -0
  36. data/bin/commands/admin_usergroups.rb +48 -0
  37. data/bin/commands/admin_users.rb +98 -0
  38. data/bin/commands/admin_users_session.rb +78 -0
  39. data/bin/commands/api.rb +3 -3
  40. data/bin/commands/apps.rb +15 -0
  41. data/bin/commands/apps_connections.rb +13 -0
  42. data/bin/commands/apps_event_authorizations.rb +16 -0
  43. data/bin/commands/apps_manifest.rb +51 -0
  44. data/bin/commands/apps_permissions.rb +23 -0
  45. data/bin/commands/apps_permissions_resources.rb +15 -0
  46. data/bin/commands/apps_permissions_scopes.rb +13 -0
  47. data/bin/commands/apps_permissions_users.rb +26 -0
  48. data/bin/commands/auth.rb +12 -2
  49. data/bin/commands/auth_teams.rb +16 -0
  50. data/bin/commands/bots.rb +15 -0
  51. data/bin/commands/calls.rb +52 -0
  52. data/bin/commands/calls_participants.rb +25 -0
  53. data/bin/commands/channels.rb +6 -132
  54. data/bin/commands/chat.rb +127 -20
  55. data/bin/commands/chat_scheduledMessages.rb +19 -0
  56. data/bin/commands/conversations.rb +253 -0
  57. data/bin/commands/dialog.rb +15 -0
  58. data/bin/commands/dnd.rb +12 -9
  59. data/bin/commands/emoji.rb +3 -2
  60. data/bin/commands/files.rb +47 -31
  61. data/bin/commands/files_comments.rb +3 -23
  62. data/bin/commands/files_remote.rb +78 -0
  63. data/bin/commands/groups.rb +1 -154
  64. data/bin/commands/im.rb +1 -48
  65. data/bin/commands/migration.rb +16 -0
  66. data/bin/commands/mpim.rb +1 -48
  67. data/bin/commands/oauth.rb +4 -2
  68. data/bin/commands/oauth_v2.rb +29 -0
  69. data/bin/commands/openid_connect.rb +27 -0
  70. data/bin/commands/pins.rb +9 -12
  71. data/bin/commands/reactions.rb +17 -15
  72. data/bin/commands/reminders.rb +17 -10
  73. data/bin/commands/rtm.rb +19 -4
  74. data/bin/commands/search.rb +17 -12
  75. data/bin/commands/stars.rb +12 -9
  76. data/bin/commands/team.rb +23 -8
  77. data/bin/commands/team_billing.rb +13 -0
  78. data/bin/commands/team_preferences.rb +13 -0
  79. data/bin/commands/team_profile.rb +14 -0
  80. data/bin/commands/tooling_tokens.rb +14 -0
  81. data/bin/commands/usergroups.rb +23 -17
  82. data/bin/commands/usergroups_users.rb +7 -4
  83. data/bin/commands/users.rb +83 -27
  84. data/bin/commands/users_admin.rb +29 -0
  85. data/bin/commands/users_prefs.rb +13 -0
  86. data/bin/commands/users_profile.rb +27 -0
  87. data/bin/commands/views.rb +48 -0
  88. data/bin/commands/workflows.rb +38 -0
  89. data/bin/commands.rb +47 -5
  90. data/bin/slack +3 -4
  91. data/examples/hi_real_time_and_web/Gemfile +1 -0
  92. data/examples/hi_real_time_and_web/hi.rb +8 -4
  93. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Gemfile +2 -1
  94. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
  95. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +13 -8
  96. data/examples/hi_web/Gemfile +1 -0
  97. data/examples/hi_web/hi.rb +2 -1
  98. data/examples/new_ticket/Gemfile +1 -0
  99. data/examples/new_ticket/new_ticket.rb +3 -2
  100. data/lib/slack/config.rb +2 -2
  101. data/lib/slack/events/config.rb +32 -0
  102. data/lib/slack/events/request.rb +72 -0
  103. data/lib/slack/logger.rb +6 -5
  104. data/lib/slack/messages/formatting.rb +4 -4
  105. data/lib/slack/messages/message.rb +6 -4
  106. data/lib/slack/real_time/api/message.rb +3 -1
  107. data/lib/slack/real_time/api/message_id.rb +1 -0
  108. data/lib/slack/real_time/api/ping.rb +5 -2
  109. data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
  110. data/lib/slack/real_time/api/typing.rb +3 -1
  111. data/lib/slack/real_time/client.rb +116 -36
  112. data/lib/slack/real_time/concurrency/async.rb +138 -0
  113. data/lib/slack/real_time/concurrency.rb +2 -2
  114. data/lib/slack/real_time/config.rb +17 -19
  115. data/lib/slack/real_time/models/base.rb +3 -3
  116. data/lib/slack/real_time/models/bot.rb +1 -0
  117. data/lib/slack/real_time/models/channel.rb +1 -0
  118. data/lib/slack/real_time/models/group.rb +1 -0
  119. data/lib/slack/real_time/models/im.rb +1 -0
  120. data/lib/slack/real_time/models/team.rb +1 -0
  121. data/lib/slack/real_time/models/user.rb +1 -0
  122. data/lib/slack/real_time/models.rb +8 -7
  123. data/lib/slack/real_time/socket.rb +51 -23
  124. data/lib/slack/real_time/stores/base.rb +6 -9
  125. data/lib/slack/real_time/stores/starter.rb +143 -69
  126. data/lib/slack/real_time/stores/store.rb +160 -82
  127. data/lib/slack/real_time/stores.rb +4 -3
  128. data/lib/slack/version.rb +2 -1
  129. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  130. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  131. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  132. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +35 -0
  133. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  134. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  135. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  136. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  137. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  138. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  139. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  140. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  141. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  142. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  143. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  144. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  145. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  146. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  147. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  148. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  149. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  150. data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
  151. data/lib/slack/web/api/endpoints/api.rb +4 -5
  152. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  153. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  154. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  155. data/lib/slack/web/api/endpoints/apps_manifest.rb +75 -0
  156. data/lib/slack/web/api/endpoints/apps_permissions.rb +36 -0
  157. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
  158. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
  159. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
  160. data/lib/slack/web/api/endpoints/auth.rb +14 -2
  161. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  162. data/lib/slack/web/api/endpoints/bots.rb +25 -0
  163. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  164. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  165. data/lib/slack/web/api/endpoints/channels.rb +8 -201
  166. data/lib/slack/web/api/endpoints/chat.rb +252 -42
  167. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  168. data/lib/slack/web/api/endpoints/conversations.rb +422 -0
  169. data/lib/slack/web/api/endpoints/dialog.rb +33 -0
  170. data/lib/slack/web/api/endpoints/dnd.rb +17 -12
  171. data/lib/slack/web/api/endpoints/emoji.rb +3 -2
  172. data/lib/slack/web/api/endpoints/files.rb +82 -43
  173. data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
  174. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  175. data/lib/slack/web/api/endpoints/groups.rb +1 -235
  176. data/lib/slack/web/api/endpoints/im.rb +1 -73
  177. data/lib/slack/web/api/endpoints/migration.rb +28 -0
  178. data/lib/slack/web/api/endpoints/mpim.rb +1 -72
  179. data/lib/slack/web/api/endpoints/oauth.rb +9 -10
  180. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  181. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  182. data/lib/slack/web/api/endpoints/pins.rb +14 -23
  183. data/lib/slack/web/api/endpoints/presence.rb +1 -1
  184. data/lib/slack/web/api/endpoints/reactions.rb +43 -34
  185. data/lib/slack/web/api/endpoints/reminders.rb +28 -15
  186. data/lib/slack/web/api/endpoints/rtm.rb +29 -8
  187. data/lib/slack/web/api/endpoints/search.rb +39 -24
  188. data/lib/slack/web/api/endpoints/stars.rb +30 -22
  189. data/lib/slack/web/api/endpoints/team.rb +34 -11
  190. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  191. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  192. data/lib/slack/web/api/endpoints/team_profile.rb +23 -0
  193. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  194. data/lib/slack/web/api/endpoints/usergroups.rb +43 -32
  195. data/lib/slack/web/api/endpoints/usergroups_users.rb +14 -9
  196. data/lib/slack/web/api/endpoints/users.rb +104 -19
  197. data/lib/slack/web/api/endpoints/users_admin.rb +49 -0
  198. data/lib/slack/web/api/endpoints/users_prefs.rb +21 -0
  199. data/lib/slack/web/api/endpoints/users_profile.rb +44 -0
  200. data/lib/slack/web/api/endpoints/views.rb +97 -0
  201. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  202. data/lib/slack/web/api/endpoints.rb +111 -29
  203. data/lib/slack/web/api/error.rb +2 -8
  204. data/lib/slack/web/api/errors/server_error.rb +37 -0
  205. data/lib/slack/web/api/errors/slack_error.rb +29 -0
  206. data/lib/slack/web/api/errors/too_many_requests_error.rb +21 -0
  207. data/lib/slack/web/api/errors.rb +1040 -0
  208. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  209. data/lib/slack/web/api/mixins/ids.id.rb +24 -0
  210. data/lib/slack/web/api/mixins/users.id.rb +6 -7
  211. data/lib/slack/web/api/mixins/users.search.rb +39 -36
  212. data/lib/slack/web/api/mixins.rb +4 -4
  213. data/lib/slack/web/api/patches/chat.1.patch +70 -0
  214. data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
  215. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  216. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  217. data/lib/slack/web/api/templates/command.erb +5 -3
  218. data/lib/slack/web/api/templates/commands.erb +2 -1
  219. data/lib/slack/web/api/templates/endpoints.erb +5 -5
  220. data/lib/slack/web/api/templates/errors.erb +20 -0
  221. data/lib/slack/web/api/templates/method.erb +26 -4
  222. data/lib/slack/web/api/templates/method_spec.erb +3 -2
  223. data/lib/slack/web/client.rb +2 -1
  224. data/lib/slack/web/config.rb +21 -10
  225. data/lib/slack/web/faraday/connection.rb +25 -16
  226. data/lib/slack/web/faraday/request.rb +4 -1
  227. data/lib/slack/web/faraday/response/raise_error.rb +19 -1
  228. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  229. data/lib/slack/web/pagination/cursor.rb +48 -0
  230. data/lib/slack-ruby-client.rb +40 -26
  231. data/lib/slack.rb +1 -0
  232. data/lib/slack_ruby_client.rb +1 -0
  233. data/lib/tasks/git.rake +2 -1
  234. data/lib/tasks/real_time.rake +16 -6
  235. data/lib/tasks/update.rake +1 -0
  236. data/lib/tasks/web.rake +42 -10
  237. data/screenshots/create-app.png +0 -0
  238. data/slack-ruby-client.gemspec +11 -9
  239. data/spec/fixtures/slack/web/429_error.yml +50 -52
  240. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  241. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  242. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  243. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  244. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  245. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  246. data/spec/fixtures/slack/web/paginated_users_list.yml +613 -0
  247. data/spec/fixtures/slack/web/rtm_connect.yml +307 -0
  248. data/spec/fixtures/slack/web/rtm_start.yml +771 -60
  249. data/spec/fixtures/slack/web/users_info.yml +153 -69
  250. data/spec/fixtures/slack/web/users_list.yml +102 -41
  251. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  252. data/spec/integration/integration_spec.rb +116 -48
  253. data/spec/slack/config_spec.rb +2 -0
  254. data/spec/slack/events/config_spec.rb +33 -0
  255. data/spec/slack/events/request_spec.rb +184 -0
  256. data/spec/slack/messages/formatting_spec.rb +25 -14
  257. data/spec/slack/real_time/api/message_spec.rb +6 -1
  258. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  259. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  260. data/spec/slack/real_time/client_spec.rb +465 -141
  261. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +21 -0
  262. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  263. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  264. data/spec/slack/real_time/event_handlers/bot_spec.rb +7 -4
  265. data/spec/slack/real_time/event_handlers/channel_spec.rb +10 -7
  266. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  267. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  268. data/spec/slack/real_time/event_handlers/im_spec.rb +9 -8
  269. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
  270. data/spec/slack/real_time/event_handlers/user_spec.rb +7 -4
  271. data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
  272. data/spec/slack/real_time/rtm_start_spec.rb +2 -1
  273. data/spec/slack/real_time/store_spec.rb +2 -1
  274. data/spec/slack/slack_spec.rb +42 -8
  275. data/spec/slack/version_spec.rb +2 -1
  276. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  277. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  278. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  279. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  280. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  281. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  282. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  283. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  284. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  285. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  286. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  287. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  288. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  289. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  290. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  291. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  292. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  293. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  294. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  295. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  296. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  297. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  298. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  299. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  300. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  301. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  302. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  303. data/spec/slack/web/api/endpoints/bots_spec.rb +8 -0
  304. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  305. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  306. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  307. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +11 -4
  308. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
  309. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  310. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
  311. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +22 -7
  312. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  313. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  314. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  315. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  316. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  317. data/spec/slack/web/api/endpoints/files_spec.rb +17 -5
  318. data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
  319. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -11
  320. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  321. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  322. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  323. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  324. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  325. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  326. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  327. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  328. data/spec/slack/web/api/endpoints/team_billing_spec.rb +8 -0
  329. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  330. data/spec/slack/web/api/endpoints/team_profile_spec.rb +8 -0
  331. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  332. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  333. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  334. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  335. data/spec/slack/web/api/endpoints/users_admin_spec.rb +18 -0
  336. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
  337. data/spec/slack/web/api/endpoints/users_profile_spec.rb +8 -0
  338. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  339. data/spec/slack/web/api/error_spec.rb +7 -7
  340. data/spec/slack/web/api/errors/slack_error_spec.rb +33 -0
  341. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  342. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  343. data/spec/slack/web/api/mixins/users_spec.rb +30 -17
  344. data/spec/slack/web/api/pagination/cursor_spec.rb +98 -0
  345. data/spec/slack/web/client_spec.rb +211 -14
  346. data/spec/slack/web/faraday/request_spec.rb +80 -0
  347. data/spec/slack/web/faraday/response/raise_error_spec.rb +86 -0
  348. data/spec/spec_helper.rb +9 -2
  349. data/spec/support/queue_with_timeout.rb +6 -5
  350. data/spec/support/real_time/concurrency/mock.rb +2 -2
  351. data/spec/support/real_time/connected_client.rb +7 -2
  352. data/spec/support/real_time/event.rb +1 -0
  353. data/spec/support/token.rb +1 -0
  354. data/spec/support/vcr.rb +37 -1
  355. metadata +250 -130
  356. data/examples/hi_real_time/Gemfile +0 -5
  357. data/examples/hi_real_time/hi.gif +0 -0
  358. data/examples/hi_real_time/hi.rb +0 -37
  359. data/examples/hi_real_time_async/Gemfile +0 -5
  360. data/examples/hi_real_time_async/hi.rb +0 -29
  361. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  362. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  363. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
  364. data/lib/slack/real_time/concurrency/celluloid.rb +0 -100
  365. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  366. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  367. data/lib/slack/web/api/mixins/channels.id.rb +0 -26
  368. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  369. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  370. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  371. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  372. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -20
  373. data/screenshots/register-bot.png +0 -0
  374. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  375. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  376. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -35
  377. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -50
  378. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  379. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  380. data/spec/slack/web/api/endpoints/im_spec.rb +0 -30
  381. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -30
  382. data/spec/slack/web/api/mixins/channels_spec.rb +0 -31
  383. data/spec/slack/web/api/mixins/groups_spec.rb +0 -31
@@ -1,34 +1,37 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Stars methods.'
4
5
  command 'stars' do |g|
5
- g.desc 'This method adds a star to an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user.'
6
- g.long_desc %( This method adds a star to an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user. One of file, file_comment, channel, or the combination of channel and timestamp must be specified. )
6
+ g.desc 'Save an item for later. Formerly known as _adding a star_.'
7
+ g.long_desc %( Save an item for later. Formerly known as _adding a star_. )
7
8
  g.command 'add' do |c|
9
+ c.flag 'channel', desc: 'Channel to add star to, or channel where the message to add star to was posted (used with timestamp).'
8
10
  c.flag 'file', desc: 'File to add star to.'
9
11
  c.flag 'file_comment', desc: 'File comment to add star to.'
10
- c.flag 'channel', desc: 'Channel to add star to, or channel where the message to add star to was posted (used with timestamp).'
11
12
  c.flag 'timestamp', desc: 'Timestamp of the message to add star to.'
12
13
  c.action do |_global_options, options, _args|
13
14
  puts JSON.dump($client.stars_add(options))
14
15
  end
15
16
  end
16
17
 
17
- g.desc 'This method lists the items starred by a user.'
18
- g.long_desc %( This method lists the items starred by a user. )
18
+ g.desc "List a user's saved items, formerly known as _stars_."
19
+ g.long_desc %( List a user's saved items, formerly known as _stars_. )
19
20
  g.command 'list' do |c|
20
- c.flag 'user', desc: 'Show stars by this user. Defaults to the authed user.'
21
+ c.flag 'cursor', desc: "Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first 'page' of the collection. See pagination for more details."
22
+ c.flag 'limit', desc: "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."
23
+ c.flag 'team_id', desc: 'encoded team id to list stars in, required if org token is used.'
21
24
  c.action do |_global_options, options, _args|
22
25
  puts JSON.dump($client.stars_list(options))
23
26
  end
24
27
  end
25
28
 
26
- g.desc 'This method removes a star from an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user.'
27
- g.long_desc %( This method removes a star from an item (message, file, file comment, channel, private group, or DM) on behalf of the authenticated user. One of file, file_comment, channel, or the combination of channel and timestamp must be specified. )
29
+ g.desc 'Removes a saved item (star) from an item.'
30
+ g.long_desc %( Removes a saved item (star) from an item. )
28
31
  g.command 'remove' do |c|
32
+ c.flag 'channel', desc: 'Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).'
29
33
  c.flag 'file', desc: 'File to remove star from.'
30
34
  c.flag 'file_comment', desc: 'File comment to remove star from.'
31
- c.flag 'channel', desc: 'Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).'
32
35
  c.flag 'timestamp', desc: 'Timestamp of the message to remove star from.'
33
36
  c.action do |_global_options, options, _args|
34
37
  puts JSON.dump($client.stars_remove(options))
data/bin/commands/team.rb CHANGED
@@ -1,30 +1,45 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Team methods.'
4
5
  command 'team' do |g|
5
- g.desc 'This method is used to get the access logs for users on a team.'
6
- g.long_desc %( This method is used to get the access logs for users on a team. )
6
+ g.desc 'Gets the access logs for the current team.'
7
+ g.long_desc %( Gets the access logs for the current team. )
7
8
  g.command 'accessLogs' do |c|
9
+ c.flag 'before', desc: 'End of time range of logs to include in results (inclusive).'
10
+ c.flag 'team_id', desc: 'encoded team id to get logs from, required if org token is used.'
8
11
  c.action do |_global_options, options, _args|
9
12
  puts JSON.dump($client.team_accessLogs(options))
10
13
  end
11
14
  end
12
15
 
13
- g.desc 'This method provides information about your team.'
14
- g.long_desc %( This method provides information about your team. )
16
+ g.desc 'Gets billable users information for the current team.'
17
+ g.long_desc %( Gets billable users information for the current team. )
18
+ g.command 'billableInfo' do |c|
19
+ c.flag 'team_id', desc: 'encoded team id to get the billable information from, required if org token is used.'
20
+ c.flag 'user', desc: 'A user to retrieve the billable information for. Defaults to all users.'
21
+ c.action do |_global_options, options, _args|
22
+ puts JSON.dump($client.team_billableInfo(options))
23
+ end
24
+ end
25
+
26
+ g.desc 'Gets information about the current team.'
27
+ g.long_desc %( Gets information about the current team. )
15
28
  g.command 'info' do |c|
29
+ c.flag 'team', desc: 'Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels.'
16
30
  c.action do |_global_options, options, _args|
17
31
  puts JSON.dump($client.team_info(options))
18
32
  end
19
33
  end
20
34
 
21
- g.desc 'This method lists the integration activity logs for a team, including when integrations are added, modified and removed. This method can only be called by Admins.'
22
- g.long_desc %( This method lists the integration activity logs for a team, including when integrations are added, modified and removed. This method can only be called by Admins. )
35
+ g.desc 'Gets the integration logs for the current team.'
36
+ g.long_desc %( Gets the integration logs for the current team. )
23
37
  g.command 'integrationLogs' do |c|
24
- c.flag 'service_id', desc: 'Filter logs to this service. Defaults to all logs.'
25
38
  c.flag 'app_id', desc: 'Filter logs to this Slack app. Defaults to all logs.'
26
- c.flag 'user', desc: "Filter logs generated by this user's actions. Defaults to all logs."
27
39
  c.flag 'change_type', desc: 'Filter logs with this change type. Defaults to all logs.'
40
+ c.flag 'service_id', desc: 'Filter logs to this service. Defaults to all logs.'
41
+ c.flag 'team_id', desc: 'encoded team id to get logs from, required if org token is used.'
42
+ c.flag 'user', desc: "Filter logs generated by this user's actions. Defaults to all logs."
28
43
  c.action do |_global_options, options, _args|
29
44
  puts JSON.dump($client.team_integrationLogs(options))
30
45
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'TeamBilling methods.'
5
+ command 'team_billing' do |g|
6
+ g.desc "Reads a workspace's billing plan information."
7
+ g.long_desc %( Reads a workspace's billing plan information. )
8
+ g.command 'info' do |c|
9
+ c.action do |_global_options, options, _args|
10
+ puts JSON.dump($client.team_billing_info(options))
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'TeamPreferences methods.'
5
+ command 'team_preferences' do |g|
6
+ g.desc "Retrieve a list of a workspace's team preferences."
7
+ g.long_desc %( Retrieve a list of a workspace's team preferences. )
8
+ g.command 'list' do |c|
9
+ c.action do |_global_options, options, _args|
10
+ puts JSON.dump($client.team_preferences_list(options))
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'TeamProfile methods.'
5
+ command 'team_profile' do |g|
6
+ g.desc "Retrieve a team's profile."
7
+ g.long_desc %( Retrieve a team's profile. )
8
+ g.command 'get' do |c|
9
+ c.flag 'visibility', desc: 'Filter by visibility.'
10
+ c.action do |_global_options, options, _args|
11
+ puts JSON.dump($client.team_profile_get(options))
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'ToolingTokens methods.'
5
+ command 'tooling_tokens' do |g|
6
+ g.desc 'Exchanges a refresh token for a new app configuration token.'
7
+ g.long_desc %( Exchanges a refresh token for a new app configuration token. )
8
+ g.command 'rotate' do |c|
9
+ c.flag 'refresh_token', desc: 'The xoxe refresh token that was issued along with the old app configuration token.'
10
+ c.action do |_global_options, options, _args|
11
+ puts JSON.dump($client.tooling_tokens_rotate(options))
12
+ end
13
+ end
14
+ end
@@ -1,60 +1,66 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
- desc "Get info on your team's User Groups."
4
+ desc 'Usergroups methods.'
4
5
  command 'usergroups' do |g|
5
- g.desc 'This method is used to create a User Group.'
6
- g.long_desc %( This method is used to create a User Group. )
6
+ g.desc 'Create a User Group'
7
+ g.long_desc %( Create a User Group )
7
8
  g.command 'create' do |c|
8
9
  c.flag 'name', desc: 'A name for the User Group. Must be unique among User Groups.'
9
- c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
10
- c.flag 'description', desc: 'A short description of the User Group.'
11
10
  c.flag 'channels', desc: 'A comma separated string of encoded channel IDs for which the User Group uses as a default.'
11
+ c.flag 'description', desc: 'A short description of the User Group.'
12
+ c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
12
13
  c.flag 'include_count', desc: 'Include the number of users in each User Group.'
14
+ c.flag 'team_id', desc: 'Encoded team id where the user group has to be created, required if org token is used.'
13
15
  c.action do |_global_options, options, _args|
14
16
  puts JSON.dump($client.usergroups_create(options))
15
17
  end
16
18
  end
17
19
 
18
- g.desc 'This method disables an existing User Group.'
19
- g.long_desc %( This method disables an existing User Group. )
20
+ g.desc 'Disable an existing User Group'
21
+ g.long_desc %( Disable an existing User Group )
20
22
  g.command 'disable' do |c|
21
23
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to disable.'
22
24
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
25
+ c.flag 'team_id', desc: 'Encoded team id where the user group is, required if org token is used.'
23
26
  c.action do |_global_options, options, _args|
24
27
  puts JSON.dump($client.usergroups_disable(options))
25
28
  end
26
29
  end
27
30
 
28
- g.desc 'This method enables a User Group which was previously disabled.'
29
- g.long_desc %( This method enables a User Group which was previously disabled. )
31
+ g.desc 'Enable a User Group'
32
+ g.long_desc %( Enable a User Group )
30
33
  g.command 'enable' do |c|
31
34
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to enable.'
32
35
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
36
+ c.flag 'team_id', desc: 'Encoded team id where the user group is, required if org token is used.'
33
37
  c.action do |_global_options, options, _args|
34
38
  puts JSON.dump($client.usergroups_enable(options))
35
39
  end
36
40
  end
37
41
 
38
- g.desc 'This method returns a list of all User Groups in the team. This can optionally include disabled User Groups.'
39
- g.long_desc %( This method returns a list of all User Groups in the team. This can optionally include disabled User Groups. )
42
+ g.desc 'List all User Groups for a team'
43
+ g.long_desc %( List all User Groups for a team )
40
44
  g.command 'list' do |c|
41
- c.flag 'include_disabled', desc: 'Include disabled User Groups.'
42
45
  c.flag 'include_count', desc: 'Include the number of users in each User Group.'
46
+ c.flag 'include_disabled', desc: 'Include disabled User Groups.'
43
47
  c.flag 'include_users', desc: 'Include the list of users for each User Group.'
48
+ c.flag 'team_id', desc: 'encoded team id to list user groups in, required if org token is used.'
44
49
  c.action do |_global_options, options, _args|
45
50
  puts JSON.dump($client.usergroups_list(options))
46
51
  end
47
52
  end
48
53
 
49
- g.desc 'This method updates the properties of an existing User Group.'
50
- g.long_desc %( This method updates the properties of an existing User Group. )
54
+ g.desc 'Update an existing User Group'
55
+ g.long_desc %( Update an existing User Group )
51
56
  g.command 'update' do |c|
52
57
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
53
- c.flag 'name', desc: 'A name for the User Group. Must be unique among User Groups.'
54
- c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
55
- c.flag 'description', desc: 'A short description of the User Group.'
56
58
  c.flag 'channels', desc: 'A comma separated string of encoded channel IDs for which the User Group uses as a default.'
59
+ c.flag 'description', desc: 'A short description of the User Group.'
60
+ c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
57
61
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
62
+ c.flag 'name', desc: 'A name for the User Group. Must be unique among User Groups.'
63
+ c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
58
64
  c.action do |_global_options, options, _args|
59
65
  puts JSON.dump($client.usergroups_update(options))
60
66
  end
@@ -1,23 +1,26 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsergroupsUsers methods.'
4
5
  command 'usergroups_users' do |g|
5
- g.desc 'This method returns a list of all users within a User Group.'
6
- g.long_desc %( This method returns a list of all users within a User Group. )
6
+ g.desc 'List all users in a User Group'
7
+ g.long_desc %( List all users in a User Group )
7
8
  g.command 'list' do |c|
8
9
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
9
10
  c.flag 'include_disabled', desc: 'Allow results that involve disabled User Groups.'
11
+ c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
10
12
  c.action do |_global_options, options, _args|
11
13
  puts JSON.dump($client.usergroups_users_list(options))
12
14
  end
13
15
  end
14
16
 
15
- g.desc 'This method updates the list of users that belong to a User Group. This method replaces all users in a User Group with the list of users provided in the users parameter.'
16
- g.long_desc %( This method updates the list of users that belong to a User Group. This method replaces all users in a User Group with the list of users provided in the users parameter. )
17
+ g.desc 'Update the list of users for a User Group'
18
+ g.long_desc %( Update the list of users for a User Group )
17
19
  g.command 'update' do |c|
18
20
  c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
19
21
  c.flag 'users', desc: 'A comma separated string of encoded user IDs that represent the entire list of users for the User Group.'
20
22
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
23
+ c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
21
24
  c.action do |_global_options, options, _args|
22
25
  puts JSON.dump($client.usergroups_users_update(options))
23
26
  end
@@ -1,9 +1,32 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
- desc 'Get info on members of your Slack team.'
4
+ desc 'Users methods.'
4
5
  command 'users' do |g|
5
- g.desc "This method lets you find out information about a user's presence."
6
- g.long_desc %( This method lets you find out information about a user's presence. Consult the presence documentation for more details. )
6
+ g.desc 'List conversations the calling user may access.'
7
+ g.long_desc %( List conversations the calling user may access. )
8
+ g.command 'conversations' do |c|
9
+ c.flag 'cursor', desc: "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."
10
+ c.flag 'exclude_archived', desc: 'Set to true to exclude archived channels from the list.'
11
+ c.flag 'limit', desc: "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."
12
+ c.flag 'team_id', desc: 'encoded team id to list conversations in, required if org token is used.'
13
+ c.flag 'types', desc: 'Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.'
14
+ c.flag 'user', desc: "Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership."
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump($client.users_conversations(options))
17
+ end
18
+ end
19
+
20
+ g.desc 'Delete the user profile photo'
21
+ g.long_desc %( Delete the user profile photo )
22
+ g.command 'deletePhoto' do |c|
23
+ c.action do |_global_options, options, _args|
24
+ puts JSON.dump($client.users_deletePhoto(options))
25
+ end
26
+ end
27
+
28
+ g.desc 'Gets user presence information.'
29
+ g.long_desc %( Gets user presence information. )
7
30
  g.command 'getPresence' do |c|
8
31
  c.flag 'user', desc: 'User to get presence info on. Defaults to the authed user.'
9
32
  c.action do |_global_options, options, _args|
@@ -11,47 +34,51 @@ command 'users' do |g|
11
34
  end
12
35
  end
13
36
 
14
- g.desc 'This method returns information about a team member.'
15
- g.long_desc %( This method returns information about a team member. )
16
- g.command 'info' do |c|
17
- c.flag 'user', desc: 'User to get info on.'
37
+ g.desc 'This method returns the ID of a team user.'
38
+ g.long_desc %( This method returns the ID of a team user. )
39
+ g.command 'id' do |c|
40
+ c.flag 'user', desc: 'User to get ID for, prefixed with @.'
18
41
  c.action do |_global_options, options, _args|
19
- puts JSON.dump($client.users_info(options))
42
+ puts JSON.dump($client.users_id(options))
20
43
  end
21
44
  end
22
45
 
23
- g.desc 'This method returns a list of all users in the team. This includes deleted/deactivated users.'
24
- g.long_desc %( This method returns a list of all users in the team. This includes deleted/deactivated users. )
25
- g.command 'list' do |c|
26
- c.flag 'presence', desc: 'Whether to include presence data in the output.'
46
+ g.desc "Get a user's identity."
47
+ g.long_desc %( Get a user's identity. )
48
+ g.command 'identity' do |c|
27
49
  c.action do |_global_options, options, _args|
28
- puts JSON.dump($client.users_list(options))
50
+ puts JSON.dump($client.users_identity(options))
29
51
  end
30
52
  end
31
53
 
32
- g.desc 'This method lets the slack messaging server know that the authenticated user'
33
- g.long_desc %( This method lets the slack messaging server know that the authenticated user is currently active. Consult the presence documentation for more details. )
34
- g.command 'setActive' do |c|
54
+ g.desc 'Gets information about a user.'
55
+ g.long_desc %( Gets information about a user. )
56
+ g.command 'info' do |c|
57
+ c.flag 'user', desc: 'User to get info on.'
58
+ c.flag 'include_locale', desc: 'Set this to true to receive the locale for this user. Defaults to false.'
35
59
  c.action do |_global_options, options, _args|
36
- puts JSON.dump($client.users_setActive(options))
60
+ puts JSON.dump($client.users_info(options))
37
61
  end
38
62
  end
39
63
 
40
- g.desc "This method lets you set the calling user's manual presence."
41
- g.long_desc %( This method lets you set the calling user's manual presence. Consult the presence documentation for more details. )
42
- g.command 'setPresence' do |c|
43
- c.flag 'presence', desc: 'Either auto or away.'
64
+ g.desc 'Lists all users in a Slack team.'
65
+ g.long_desc %( Lists all users in a Slack team. )
66
+ g.command 'list' do |c|
67
+ c.flag 'cursor', desc: "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."
68
+ c.flag 'include_locale', desc: 'Set this to true to receive the locale for users. Defaults to false.'
69
+ c.flag 'limit', desc: "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."
70
+ c.flag 'team_id', desc: 'encoded team id to list users in, required if org token is used.'
44
71
  c.action do |_global_options, options, _args|
45
- puts JSON.dump($client.users_setPresence(options))
72
+ puts JSON.dump($client.users_list(options))
46
73
  end
47
74
  end
48
75
 
49
- g.desc 'This method returns the ID of a team user.'
50
- g.long_desc %( This method returns the ID of a team user. )
51
- g.command 'id' do |c|
52
- c.flag 'user', desc: 'User to get ID for, prefixed with @.'
76
+ g.desc 'Find a user with an email address.'
77
+ g.long_desc %( Find a user with an email address. )
78
+ g.command 'lookupByEmail' do |c|
79
+ c.flag 'email', desc: 'An email address belonging to a user in the workspace.'
53
80
  c.action do |_global_options, options, _args|
54
- puts JSON.dump($client.users_id(options))
81
+ puts JSON.dump($client.users_lookupByEmail(options))
55
82
  end
56
83
  end
57
84
 
@@ -63,4 +90,33 @@ command 'users' do |g|
63
90
  puts JSON.dump($client.users_search(options))
64
91
  end
65
92
  end
93
+
94
+ g.desc 'Marked a user as active. Deprecated and non-functional.'
95
+ g.long_desc %( Marked a user as active. Deprecated and non-functional. )
96
+ g.command 'setActive' do |c|
97
+ c.action do |_global_options, options, _args|
98
+ puts JSON.dump($client.users_setActive(options))
99
+ end
100
+ end
101
+
102
+ g.desc 'Set the user profile photo'
103
+ g.long_desc %( Set the user profile photo )
104
+ g.command 'setPhoto' do |c|
105
+ c.flag 'crop_w', desc: 'Width/height of crop box (always square).'
106
+ c.flag 'crop_x', desc: 'X coordinate of top-left corner of crop box.'
107
+ c.flag 'crop_y', desc: 'Y coordinate of top-left corner of crop box.'
108
+ c.flag 'image', desc: 'File contents via multipart/form-data.'
109
+ c.action do |_global_options, options, _args|
110
+ puts JSON.dump($client.users_setPhoto(options))
111
+ end
112
+ end
113
+
114
+ g.desc 'Manually sets user presence.'
115
+ g.long_desc %( Manually sets user presence. )
116
+ g.command 'setPresence' do |c|
117
+ c.flag 'presence', desc: 'Either auto or away.'
118
+ c.action do |_global_options, options, _args|
119
+ puts JSON.dump($client.users_setPresence(options))
120
+ end
121
+ end
66
122
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'UsersAdmin methods.'
5
+ command 'users_admin' do |g|
6
+ g.desc 'Send an invitation to a new user by email (undocumented)'
7
+ g.long_desc %( Send an invitation to a new user by email )
8
+ g.command 'invite' do |c|
9
+ c.flag 'email', desc: 'Email address of the new user'
10
+ c.flag 'channels', desc: 'Comma-separated list of IDs (not names!) for channels, which the new user will auto-join. Both channel IDs for public channels and group IDs for private chanels work.'
11
+ c.flag 'first_name', desc: 'Prefilled input for the "First name" field on the "new user registration" page.'
12
+ c.flag 'last_name', desc: 'Prefilled input for the "Last name" field on the "new user registration" page.'
13
+ c.flag 'resend', desc: 'Resend the invitation email if the user has already been invited and the email was sent some time ago.'
14
+ c.flag 'restricted', desc: 'Invite a guest that can use multiple channels'
15
+ c.flag 'ultra_restricted', desc: 'Invite a guest that can use one channel only'
16
+ c.action do |_global_options, options, _args|
17
+ puts JSON.dump($client.users_admin_invite(options))
18
+ end
19
+ end
20
+
21
+ g.desc 'Disable a user (undocumented)'
22
+ g.long_desc %( Disable a user )
23
+ g.command 'setInactive' do |c|
24
+ c.flag 'user', desc: 'User to disable'
25
+ c.action do |_global_options, options, _args|
26
+ puts JSON.dump($client.users_admin_setInactive(options))
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'UsersPrefs methods.'
5
+ command 'users_prefs' do |g|
6
+ g.desc "Returns the user's preferences (undocumented)"
7
+ g.long_desc %( Returns the user's preferences )
8
+ g.command 'get' do |c|
9
+ c.action do |_global_options, options, _args|
10
+ puts JSON.dump($client.users_prefs_get(options))
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'UsersProfile methods.'
5
+ command 'users_profile' do |g|
6
+ g.desc "Retrieve a user's profile information, including their custom status."
7
+ g.long_desc %( Retrieve a user's profile information, including their custom status. )
8
+ g.command 'get' do |c|
9
+ c.flag 'include_labels', desc: 'Include labels for each ID in custom profile fields. Using this parameter will heavily rate-limit your requests and is not recommended.'
10
+ c.flag 'user', desc: 'User to retrieve profile info for.'
11
+ c.action do |_global_options, options, _args|
12
+ puts JSON.dump($client.users_profile_get(options))
13
+ end
14
+ end
15
+
16
+ g.desc "Set a user's profile information, including custom status."
17
+ g.long_desc %( Set a user's profile information, including custom status. )
18
+ g.command 'set' do |c|
19
+ c.flag 'name', desc: 'Name of a single key to set. Usable only if profile is not passed.'
20
+ c.flag 'profile', desc: '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.'
21
+ c.flag 'user', desc: 'ID of user to change. This argument may only be specified by team admins on paid teams.'
22
+ c.flag 'value', desc: 'Value to set a single key to. Usable only if profile is not passed.'
23
+ c.action do |_global_options, options, _args|
24
+ puts JSON.dump($client.users_profile_set(options))
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'Views methods.'
5
+ command 'views' do |g|
6
+ g.desc 'Open a view for a user.'
7
+ g.long_desc %( Open a view for a user. )
8
+ g.command 'open' do |c|
9
+ c.flag 'trigger_id', desc: 'Exchange a trigger to post to the user.'
10
+ c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
11
+ c.action do |_global_options, options, _args|
12
+ puts JSON.dump($client.views_open(options))
13
+ end
14
+ end
15
+
16
+ g.desc 'Publish a static view for a User.'
17
+ g.long_desc %( Publish a static view for a User. )
18
+ g.command 'publish' do |c|
19
+ c.flag 'user_id', desc: 'id of the user you want publish a view to.'
20
+ c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
21
+ c.flag 'hash', desc: 'A string that represents view state to protect against possible race conditions.'
22
+ c.action do |_global_options, options, _args|
23
+ puts JSON.dump($client.views_publish(options))
24
+ end
25
+ end
26
+
27
+ g.desc 'Push a view onto the stack of a root view.'
28
+ g.long_desc %( Push a view onto the stack of a root view. )
29
+ g.command 'push' do |c|
30
+ c.flag 'trigger_id', desc: 'Exchange a trigger to post to the user.'
31
+ c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
32
+ c.action do |_global_options, options, _args|
33
+ puts JSON.dump($client.views_push(options))
34
+ end
35
+ end
36
+
37
+ g.desc 'Update an existing view.'
38
+ g.long_desc %( Update an existing view. )
39
+ g.command 'update' do |c|
40
+ c.flag 'view', desc: 'A view object. This must be a JSON-encoded string.'
41
+ c.flag 'external_id', desc: '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.'
42
+ c.flag 'view_id', desc: 'A unique identifier of the view to be updated. Either view_id or external_id is required.'
43
+ c.flag 'hash', desc: 'A string that represents view state to protect against possible race conditions.'
44
+ c.action do |_global_options, options, _args|
45
+ puts JSON.dump($client.views_update(options))
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'Workflows methods.'
5
+ command 'workflows' do |g|
6
+ g.desc "Indicate that an app's step in a workflow completed execution."
7
+ g.long_desc %( Indicate that an app's step in a workflow completed execution. )
8
+ g.command 'stepCompleted' do |c|
9
+ c.flag 'workflow_step_execute_id', desc: 'Context identifier that maps to the correct workflow step execution.'
10
+ c.flag 'outputs', desc: '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.'
11
+ c.action do |_global_options, options, _args|
12
+ puts JSON.dump($client.workflows_stepCompleted(options))
13
+ end
14
+ end
15
+
16
+ g.desc "Indicate that an app's step in a workflow failed to execute."
17
+ g.long_desc %( Indicate that an app's step in a workflow failed to execute. )
18
+ g.command 'stepFailed' do |c|
19
+ c.flag 'error', desc: 'A JSON-based object with a message property that should contain a human readable error message.'
20
+ c.flag 'workflow_step_execute_id', desc: 'Context identifier that maps to the correct workflow step execution.'
21
+ c.action do |_global_options, options, _args|
22
+ puts JSON.dump($client.workflows_stepFailed(options))
23
+ end
24
+ end
25
+
26
+ g.desc 'Update the configuration for a workflow step.'
27
+ g.long_desc %( Update the configuration for a workflow step. )
28
+ g.command 'updateStep' do |c|
29
+ c.flag 'workflow_step_edit_id', desc: 'A context identifier provided with view_submission payloads used to call back to workflows.updateStep.'
30
+ c.flag 'inputs', desc: '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.'
31
+ c.flag 'outputs', desc: '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.'
32
+ c.flag 'step_image_url', desc: 'An optional field that can be used to override app image that is shown in the Workflow Builder.'
33
+ c.flag 'step_name', desc: 'An optional field that can be used to override the step name that is shown in the Workflow Builder.'
34
+ c.action do |_global_options, options, _args|
35
+ puts JSON.dump($client.workflows_updateStep(options))
36
+ end
37
+ end
38
+ end