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
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'FilesRemote methods.'
5
+ command 'files_remote' do |g|
6
+ g.desc 'Adds a file from a remote service'
7
+ g.long_desc %( Adds a file from a remote service )
8
+ g.command 'add' do |c|
9
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
10
+ c.flag 'external_url', desc: 'URL of the remote file.'
11
+ c.flag 'title', desc: 'Title of the file being shared.'
12
+ c.flag 'filetype', desc: 'type of file.'
13
+ c.flag 'indexable_file_contents', desc: 'A text file (txt, pdf, doc, etc.) containing textual search terms that are used to improve discovery of the remote file.'
14
+ c.flag 'preview_image', desc: 'Preview of the document via multipart/form-data.'
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump($client.files_remote_add(options))
17
+ end
18
+ end
19
+
20
+ g.desc 'Retrieve information about a remote file added to Slack'
21
+ g.long_desc %( Retrieve information about a remote file added to Slack )
22
+ g.command 'info' do |c|
23
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
24
+ c.flag 'file', desc: 'Specify a file by providing its ID.'
25
+ c.action do |_global_options, options, _args|
26
+ puts JSON.dump($client.files_remote_info(options))
27
+ end
28
+ end
29
+
30
+ g.desc 'Retrieve information about a remote file added to Slack'
31
+ g.long_desc %( Retrieve information about a remote file added to Slack )
32
+ g.command 'list' do |c|
33
+ c.flag 'channel', desc: 'Filter files appearing in a specific channel, indicated by its ID.'
34
+ 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."
35
+ c.flag 'limit', desc: 'The maximum number of items to return.'
36
+ c.flag 'ts_from', desc: 'Filter files created after this timestamp (inclusive).'
37
+ c.flag 'ts_to', desc: 'Filter files created before this timestamp (inclusive).'
38
+ c.action do |_global_options, options, _args|
39
+ puts JSON.dump($client.files_remote_list(options))
40
+ end
41
+ end
42
+
43
+ g.desc 'Remove a remote file.'
44
+ g.long_desc %( Remove a remote file. )
45
+ g.command 'remove' do |c|
46
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
47
+ c.flag 'file', desc: 'Specify a file by providing its ID.'
48
+ c.action do |_global_options, options, _args|
49
+ puts JSON.dump($client.files_remote_remove(options))
50
+ end
51
+ end
52
+
53
+ g.desc 'Share a remote file into a channel.'
54
+ g.long_desc %( Share a remote file into a channel. )
55
+ g.command 'share' do |c|
56
+ c.flag 'channels', desc: 'Comma-separated list of channel IDs where the file will be shared.'
57
+ c.flag 'external_id', desc: 'The globally unique identifier (GUID) for the file, as set by the app registering the file with Slack. Either this field or file or both are required.'
58
+ c.flag 'file', desc: 'Specify a file registered with Slack by providing its ID. Either this field or external_id or both are required.'
59
+ c.action do |_global_options, options, _args|
60
+ puts JSON.dump($client.files_remote_share(options))
61
+ end
62
+ end
63
+
64
+ g.desc 'Updates an existing remote file.'
65
+ g.long_desc %( Updates an existing remote file. )
66
+ g.command 'update' do |c|
67
+ c.flag 'external_id', desc: 'Creator defined GUID for the file.'
68
+ c.flag 'external_url', desc: 'URL of the remote file.'
69
+ c.flag 'file', desc: 'Specify a file by providing its ID.'
70
+ c.flag 'filetype', desc: 'type of file.'
71
+ c.flag 'indexable_file_contents', desc: 'File containing contents that can be used to improve searchability for the remote file.'
72
+ c.flag 'preview_image', desc: 'Preview of the document via multipart/form-data.'
73
+ c.flag 'title', desc: 'Title of the file being shared.'
74
+ c.action do |_global_options, options, _args|
75
+ puts JSON.dump($client.files_remote_update(options))
76
+ end
77
+ end
78
+ 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
  desc 'Migration methods.'
@@ -6,6 +7,7 @@ command 'migration' do |g|
6
7
  g.long_desc %( For Enterprise Grid workspaces, map local user IDs to global user IDs )
7
8
  g.command 'exchange' do |c|
8
9
  c.flag 'users', desc: 'A comma-separated list of user ids, up to 400 per request.'
10
+ c.flag 'team_id', desc: 'Specify team_id starts with T in case of Org Token.'
9
11
  c.flag 'to_old', desc: 'Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.'
10
12
  c.action do |_global_options, options, _args|
11
13
  puts JSON.dump($client.migration_exchange(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
  desc 'Oauth methods.'
@@ -9,22 +10,9 @@ command 'oauth' do |g|
9
10
  c.flag 'client_secret', desc: 'Issued when you created your application.'
10
11
  c.flag 'code', desc: 'The code param returned via the OAuth callback.'
11
12
  c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).'
12
- c.flag 'single_channel', desc: 'Request the user to add your app only to a single channel.'
13
+ c.flag 'single_channel', desc: 'Request the user to add your app only to a single channel. Only valid with a legacy workspace app.'
13
14
  c.action do |_global_options, options, _args|
14
15
  puts JSON.dump($client.oauth_access(options))
15
16
  end
16
17
  end
17
-
18
- g.desc 'Exchanges a temporary OAuth verifier code for a workspace token.'
19
- g.long_desc %( Exchanges a temporary OAuth verifier code for a workspace token. )
20
- g.command 'token' do |c|
21
- c.flag 'client_id', desc: 'Issued when you created your application.'
22
- c.flag 'client_secret', desc: 'Issued when you created your application.'
23
- c.flag 'code', desc: 'The code param returned via the OAuth callback.'
24
- c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).'
25
- c.flag 'single_channel', desc: 'Request the user to add your app only to a single channel.'
26
- c.action do |_global_options, options, _args|
27
- puts JSON.dump($client.oauth_token(options))
28
- end
29
- end
30
18
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'OauthV2 methods.'
5
+ command 'oauth_v2' do |g|
6
+ g.desc 'Exchanges a temporary OAuth verifier code for an access token.'
7
+ g.long_desc %( Exchanges a temporary OAuth verifier code for an access token. )
8
+ g.command 'access' do |c|
9
+ c.flag 'client_id', desc: 'Issued when you created your application.'
10
+ c.flag 'client_secret', desc: 'Issued when you created your application.'
11
+ c.flag 'code', desc: 'The code param returned via the OAuth callback.'
12
+ c.flag 'grant_type', desc: 'The grant_type param as described in the OAuth spec.'
13
+ c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).'
14
+ c.flag 'refresh_token', desc: 'The refresh_token param as described in the OAuth spec.'
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump($client.oauth_v2_access(options))
17
+ end
18
+ end
19
+
20
+ g.desc 'Exchanges a legacy access token for a new expiring access token and refresh token'
21
+ g.long_desc %( Exchanges a legacy access token for a new expiring access token and refresh token )
22
+ g.command 'exchange' do |c|
23
+ c.flag 'client_id', desc: 'Issued when you created your application.'
24
+ c.flag 'client_secret', desc: 'Issued when you created your application.'
25
+ c.action do |_global_options, options, _args|
26
+ puts JSON.dump($client.oauth_v2_exchange(options))
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'OpenidConnect methods.'
5
+ command 'openid_connect' do |g|
6
+ g.desc 'Exchanges a temporary OAuth verifier code for an access token for Sign in with Slack.'
7
+ g.long_desc %( Exchanges a temporary OAuth verifier code for an access token for Sign in with Slack. )
8
+ g.command 'token' do |c|
9
+ c.flag 'client_id', desc: 'Issued when you created your application.'
10
+ c.flag 'client_secret', desc: 'Issued when you created your application.'
11
+ c.flag 'code', desc: 'The code param returned via the OAuth callback.'
12
+ c.flag 'grant_type', desc: 'The grant_type param as described in the OAuth spec.'
13
+ c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).'
14
+ c.flag 'refresh_token', desc: 'The refresh_token param as described in the OAuth spec.'
15
+ c.action do |_global_options, options, _args|
16
+ puts JSON.dump($client.openid_connect_token(options))
17
+ end
18
+ end
19
+
20
+ g.desc 'Get the identity of a user who has authorized Sign in with Slack.'
21
+ g.long_desc %( Get the identity of a user who has authorized Sign in with Slack. )
22
+ g.command 'userInfo' do |c|
23
+ c.action do |_global_options, options, _args|
24
+ puts JSON.dump($client.openid_connect_userInfo(options))
25
+ end
26
+ end
27
+ end
data/bin/commands/pins.rb CHANGED
@@ -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
  desc 'Pins methods.'
@@ -5,10 +6,8 @@ command 'pins' do |g|
5
6
  g.desc 'Pins an item to a channel.'
6
7
  g.long_desc %( Pins an item to a channel. )
7
8
  g.command 'add' do |c|
8
- c.flag 'channel', desc: 'Channel to pin the item in.'
9
- c.flag 'file', desc: 'File to pin.'
10
- c.flag 'file_comment', desc: 'File comment to pin.'
11
- c.flag 'timestamp', desc: 'Timestamp of the message to pin.'
9
+ c.flag 'channel', desc: 'Channel to pin the messsage to. You must also include a timestamp when pinning messages.'
10
+ c.flag 'timestamp', desc: 'Timestamp of the message to pin. You must also include the channel.'
12
11
  c.action do |_global_options, options, _args|
13
12
  puts JSON.dump($client.pins_add(options))
14
13
  end
@@ -27,8 +26,6 @@ command 'pins' do |g|
27
26
  g.long_desc %( Un-pins an item from a channel. )
28
27
  g.command 'remove' do |c|
29
28
  c.flag 'channel', desc: 'Channel where the item is pinned to.'
30
- c.flag 'file', desc: 'File to un-pin.'
31
- c.flag 'file_comment', desc: 'File comment to un-pin.'
32
29
  c.flag 'timestamp', desc: 'Timestamp of the message to un-pin.'
33
30
  c.action do |_global_options, options, _args|
34
31
  puts JSON.dump($client.pins_remove(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
  desc 'Reactions methods.'
@@ -5,10 +6,8 @@ command 'reactions' do |g|
5
6
  g.desc 'Adds a reaction to an item.'
6
7
  g.long_desc %( Adds a reaction to an item. )
7
8
  g.command 'add' do |c|
8
- c.flag 'name', desc: 'Reaction (emoji) name.'
9
9
  c.flag 'channel', desc: 'Channel where the message to add reaction to was posted.'
10
- c.flag 'file', desc: 'File to add reaction to.'
11
- c.flag 'file_comment', desc: 'File comment to add reaction to.'
10
+ c.flag 'name', desc: 'Reaction (emoji) name.'
12
11
  c.flag 'timestamp', desc: 'Timestamp of the message to add reaction to.'
13
12
  c.action do |_global_options, options, _args|
14
13
  puts JSON.dump($client.reactions_add(options))
@@ -34,6 +33,7 @@ command 'reactions' do |g|
34
33
  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."
35
34
  c.flag 'full', desc: 'If true always return the complete reaction list.'
36
35
  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."
36
+ c.flag 'team_id', desc: 'encoded team id to list reactions in, required if org token is used.'
37
37
  c.flag 'user', desc: 'Show reactions made by this user. Defaults to the authed user.'
38
38
  c.action do |_global_options, options, _args|
39
39
  puts JSON.dump($client.reactions_list(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
  desc 'Reminders methods.'
@@ -7,6 +8,8 @@ command 'reminders' do |g|
7
8
  g.command 'add' do |c|
8
9
  c.flag 'text', desc: 'The content of the reminder.'
9
10
  c.flag 'time', desc: 'When this reminder should happen: the Unix timestamp (up to five years from now), the number of seconds until the reminder (if within 24 hours), or a natural language description (Ex. "in 15 minutes," or "every Thursday").'
11
+ c.flag 'recurrence', desc: 'Specify the repeating behavior of a reminder. Available options: daily, weekly, monthly, or yearly. If weekly, may further specify the days of the week.'
12
+ c.flag 'team_id', desc: 'Encoded team id, required if org token is used.'
10
13
  c.flag 'user', desc: 'The user who will receive the reminder. If no user is specified, the reminder will go to user who created it.'
11
14
  c.action do |_global_options, options, _args|
12
15
  puts JSON.dump($client.reminders_add(options))
@@ -17,6 +20,7 @@ command 'reminders' do |g|
17
20
  g.long_desc %( Marks a reminder as complete. )
18
21
  g.command 'complete' do |c|
19
22
  c.flag 'reminder', desc: 'The ID of the reminder to be marked as complete.'
23
+ c.flag 'team_id', desc: 'Encoded team id, required if org token is used.'
20
24
  c.action do |_global_options, options, _args|
21
25
  puts JSON.dump($client.reminders_complete(options))
22
26
  end
@@ -26,6 +30,7 @@ command 'reminders' do |g|
26
30
  g.long_desc %( Deletes a reminder. )
27
31
  g.command 'delete' do |c|
28
32
  c.flag 'reminder', desc: 'The ID of the reminder.'
33
+ c.flag 'team_id', desc: 'Encoded team id, required if org token is used.'
29
34
  c.action do |_global_options, options, _args|
30
35
  puts JSON.dump($client.reminders_delete(options))
31
36
  end
@@ -35,6 +40,7 @@ command 'reminders' do |g|
35
40
  g.long_desc %( Gets information about a reminder. )
36
41
  g.command 'info' do |c|
37
42
  c.flag 'reminder', desc: 'The ID of the reminder.'
43
+ c.flag 'team_id', desc: 'Encoded team id, required if org token is passed.'
38
44
  c.action do |_global_options, options, _args|
39
45
  puts JSON.dump($client.reminders_info(options))
40
46
  end
@@ -43,6 +49,7 @@ command 'reminders' do |g|
43
49
  g.desc 'Lists all reminders created by or for a given user.'
44
50
  g.long_desc %( Lists all reminders created by or for a given user. )
45
51
  g.command 'list' do |c|
52
+ c.flag 'team_id', desc: 'Encoded team id, required if org token is passed.'
46
53
  c.action do |_global_options, options, _args|
47
54
  puts JSON.dump($client.reminders_list(options))
48
55
  end
data/bin/commands/rtm.rb CHANGED
@@ -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
  desc 'Rtm methods.'
@@ -11,19 +12,4 @@ command 'rtm' do |g|
11
12
  puts JSON.dump($client.rtm_connect(options))
12
13
  end
13
14
  end
14
-
15
- g.desc 'Starts a Real Time Messaging session.'
16
- g.long_desc %( Starts a Real Time Messaging session. )
17
- g.command 'start' do |c|
18
- c.flag 'batch_presence_aware', desc: 'Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.'
19
- c.flag 'include_locale', desc: 'Set this to true to receive the locale for users and channels. Defaults to false.'
20
- c.flag 'mpim_aware', desc: 'Returns MPIMs to the client in the API response.'
21
- c.flag 'no_latest', desc: 'Exclude latest timestamps for channels, groups, mpims, and ims. Automatically sets no_unreads to 1.'
22
- c.flag 'no_unreads', desc: 'Skip unread counts for each channel (improves performance).'
23
- c.flag 'presence_sub', desc: 'Only deliver presence events when requested by subscription. See presence subscriptions.'
24
- c.flag 'simple_latest', desc: 'Return timestamp only for latest message object of each channel (improves performance).'
25
- c.action do |_global_options, options, _args|
26
- puts JSON.dump($client.rtm_start(options))
27
- end
28
- end
29
15
  end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
- desc "Search your team's files and messages."
4
+ desc 'Search methods.'
4
5
  command 'search' do |g|
5
6
  g.desc 'Searches for messages and files matching a query.'
6
7
  g.long_desc %( Searches for messages and files matching a query. )
@@ -9,6 +10,7 @@ command 'search' do |g|
9
10
  c.flag 'highlight', desc: 'Pass a value of true to enable query highlight markers (see below).'
10
11
  c.flag 'sort', desc: 'Return matches sorted by either score or timestamp.'
11
12
  c.flag 'sort_dir', desc: 'Change sort direction to ascending (asc) or descending (desc).'
13
+ c.flag 'team_id', desc: 'encoded team id to search in, required if org token is used.'
12
14
  c.action do |_global_options, options, _args|
13
15
  puts JSON.dump($client.search_all(options))
14
16
  end
@@ -21,6 +23,7 @@ command 'search' do |g|
21
23
  c.flag 'highlight', desc: 'Pass a value of true to enable query highlight markers (see below).'
22
24
  c.flag 'sort', desc: 'Return matches sorted by either score or timestamp.'
23
25
  c.flag 'sort_dir', desc: 'Change sort direction to ascending (asc) or descending (desc).'
26
+ c.flag 'team_id', desc: 'encoded team id to search in, required if org token is used.'
24
27
  c.action do |_global_options, options, _args|
25
28
  puts JSON.dump($client.search_files(options))
26
29
  end
@@ -30,9 +33,11 @@ command 'search' do |g|
30
33
  g.long_desc %( Searches for messages matching a query. )
31
34
  g.command 'messages' do |c|
32
35
  c.flag 'query', desc: 'Search query.'
36
+ c.flag 'cursor', desc: "Use this when getting results with cursormark pagination. For first call send * for subsequent calls, send the value of next_cursor returned in the previous call's results."
33
37
  c.flag 'highlight', desc: 'Pass a value of true to enable query highlight markers (see below).'
34
38
  c.flag 'sort', desc: 'Return matches sorted by either score or timestamp.'
35
39
  c.flag 'sort_dir', desc: 'Change sort direction to ascending (asc) or descending (desc).'
40
+ c.flag 'team_id', desc: 'encoded team id to search in, required if org token is used.'
36
41
  c.action do |_global_options, options, _args|
37
42
  puts JSON.dump($client.search_messages(options))
38
43
  end
@@ -1,9 +1,10 @@
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 'Adds a star to an item.'
6
- g.long_desc %( Adds a star to an item. )
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|
8
9
  c.flag 'channel', desc: 'Channel to add star to, or channel where the message to add star to was posted (used with timestamp).'
9
10
  c.flag 'file', desc: 'File to add star to.'
@@ -14,18 +15,19 @@ command 'stars' do |g|
14
15
  end
15
16
  end
16
17
 
17
- g.desc 'Lists stars for a user.'
18
- g.long_desc %( Lists stars for 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
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."
21
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.'
22
24
  c.action do |_global_options, options, _args|
23
25
  puts JSON.dump($client.stars_list(options))
24
26
  end
25
27
  end
26
28
 
27
- g.desc 'Removes a star from an item.'
28
- g.long_desc %( Removes a star from an item. )
29
+ g.desc 'Removes a saved item (star) from an item.'
30
+ g.long_desc %( Removes a saved item (star) from an item. )
29
31
  g.command 'remove' do |c|
30
32
  c.flag 'channel', desc: 'Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).'
31
33
  c.flag 'file', desc: 'File to remove star from.'
data/bin/commands/team.rb CHANGED
@@ -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
  desc 'Team methods.'
@@ -6,6 +7,7 @@ command 'team' do |g|
6
7
  g.long_desc %( Gets the access logs for the current team. )
7
8
  g.command 'accessLogs' do |c|
8
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.'
9
11
  c.action do |_global_options, options, _args|
10
12
  puts JSON.dump($client.team_accessLogs(options))
11
13
  end
@@ -14,6 +16,7 @@ command 'team' do |g|
14
16
  g.desc 'Gets billable users information for the current team.'
15
17
  g.long_desc %( Gets billable users information for the current team. )
16
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.'
17
20
  c.flag 'user', desc: 'A user to retrieve the billable information for. Defaults to all users.'
18
21
  c.action do |_global_options, options, _args|
19
22
  puts JSON.dump($client.team_billableInfo(options))
@@ -23,6 +26,8 @@ command 'team' do |g|
23
26
  g.desc 'Gets information about the current team.'
24
27
  g.long_desc %( Gets information about the current team. )
25
28
  g.command 'info' do |c|
29
+ c.flag 'domain', desc: 'Query by domain instead of team (only when team is null). This only works for domains in the same enterprise as the querying team token. This also expects the domain to belong to a team and not the enterprise itself.'
30
+ 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.'
26
31
  c.action do |_global_options, options, _args|
27
32
  puts JSON.dump($client.team_info(options))
28
33
  end
@@ -34,6 +39,7 @@ command 'team' do |g|
34
39
  c.flag 'app_id', desc: 'Filter logs to this Slack app. Defaults to all logs.'
35
40
  c.flag 'change_type', desc: 'Filter logs with this change type. Defaults to all logs.'
36
41
  c.flag 'service_id', desc: 'Filter logs to this service. Defaults to all logs.'
42
+ c.flag 'team_id', desc: 'encoded team id to get logs from, required if org token is used.'
37
43
  c.flag 'user', desc: "Filter logs generated by this user's actions. Defaults to all logs."
38
44
  c.action do |_global_options, options, _args|
39
45
  puts JSON.dump($client.team_integrationLogs(options))
@@ -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
@@ -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
  desc 'TeamProfile methods.'
@@ -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,6 +1,7 @@
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
6
  g.desc 'Create a User Group'
6
7
  g.long_desc %( Create a User Group )
@@ -10,6 +11,7 @@ command 'usergroups' do |g|
10
11
  c.flag 'description', desc: 'A short description of the User Group.'
11
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
@@ -20,6 +22,7 @@ command 'usergroups' do |g|
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
@@ -30,6 +33,7 @@ command 'usergroups' do |g|
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
@@ -41,6 +45,7 @@ command 'usergroups' do |g|
41
45
  c.flag 'include_count', desc: 'Include the number of users in each User Group.'
42
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
@@ -55,6 +60,7 @@ command 'usergroups' do |g|
55
60
  c.flag 'handle', desc: 'A mention handle. Must be unique among channels, users and User Groups.'
56
61
  c.flag 'include_count', desc: 'Include the number of users in the User Group.'
57
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,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsergroupsUsers methods.'
@@ -7,6 +8,7 @@ command 'usergroups_users' do |g|
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
@@ -18,6 +20,7 @@ command 'usergroups_users' do |g|
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,6 +1,7 @@
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
6
  g.desc 'List conversations the calling user may access.'
6
7
  g.long_desc %( List conversations the calling user may access. )
@@ -8,6 +9,7 @@ command 'users' do |g|
8
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."
9
10
  c.flag 'exclude_archived', desc: 'Set to true to exclude archived channels from the list.'
10
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.'
11
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.'
12
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."
13
15
  c.action do |_global_options, options, _args|
@@ -64,8 +66,8 @@ command 'users' do |g|
64
66
  g.command 'list' do |c|
65
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."
66
68
  c.flag 'include_locale', desc: 'Set this to true to receive the locale for users. Defaults to false.'
67
- 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."
68
- c.flag 'presence', desc: 'Deprecated. Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.'
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.'
69
71
  c.action do |_global_options, options, _args|
70
72
  puts JSON.dump($client.users_list(options))
71
73
  end
@@ -100,10 +102,10 @@ command 'users' do |g|
100
102
  g.desc 'Set the user profile photo'
101
103
  g.long_desc %( Set the user profile photo )
102
104
  g.command 'setPhoto' do |c|
103
- c.flag 'image', desc: 'File contents via multipart/form-data.'
104
105
  c.flag 'crop_w', desc: 'Width/height of crop box (always square).'
105
106
  c.flag 'crop_x', desc: 'X coordinate of top-left corner of crop box.'
106
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.'
107
109
  c.action do |_global_options, options, _args|
108
110
  puts JSON.dump($client.users_setPhoto(options))
109
111
  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
  desc 'UsersAdmin methods.'
@@ -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
  desc 'UsersPrefs methods.'
@@ -1,19 +1,20 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsersProfile methods.'
4
5
  command 'users_profile' do |g|
5
- g.desc "Retrieves a user's profile information."
6
- g.long_desc %( Retrieves a user's profile information. )
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. )
7
8
  g.command 'get' do |c|
8
- c.flag 'include_labels', desc: 'Include labels for each ID in custom profile fields.'
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.'
9
10
  c.flag 'user', desc: 'User to retrieve profile info for.'
10
11
  c.action do |_global_options, options, _args|
11
12
  puts JSON.dump($client.users_profile_get(options))
12
13
  end
13
14
  end
14
15
 
15
- g.desc 'Set the profile information for a user.'
16
- g.long_desc %( Set the profile information for a user. )
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. )
17
18
  g.command 'set' do |c|
18
19
  c.flag 'name', desc: 'Name of a single key to set. Usable only if profile is not passed.'
19
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.'