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,161 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc "Get info on your team's private channels."
4
5
  command 'groups' do |g|
5
- g.desc 'This method archives a private channel.'
6
- g.long_desc %( This method archives a private channel. )
7
- g.command 'archive' do |c|
8
- c.flag 'channel', desc: 'Private channel to archive.'
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.groups_archive(options))
11
- end
12
- end
13
-
14
- g.desc 'This method closes a private channel.'
15
- g.long_desc %( This method closes a private channel. )
16
- g.command 'close' do |c|
17
- c.flag 'channel', desc: 'Private channel to close.'
18
- c.action do |_global_options, options, _args|
19
- puts JSON.dump($client.groups_close(options))
20
- end
21
- end
22
-
23
- g.desc 'This method creates a private channel.'
24
- g.long_desc %( This method creates a private channel. )
25
- g.command 'create' do |c|
26
- c.flag 'name', desc: 'Name of private channel to create.'
27
- c.action do |_global_options, options, _args|
28
- puts JSON.dump($client.groups_create(options))
29
- end
30
- end
31
-
32
- g.desc 'This method takes an existing private channel and performs the following steps:'
33
- g.long_desc %( This method takes an existing private channel and performs the following steps: )
34
- g.command 'createChild' do |c|
35
- c.flag 'channel', desc: 'Private channel to clone and archive.'
36
- c.action do |_global_options, options, _args|
37
- puts JSON.dump($client.groups_createChild(options))
38
- end
39
- end
40
-
41
- g.desc 'This method returns a portion of messages/events from the specified private channel.'
42
- g.long_desc %( This method returns a portion of messages/events from the specified private channel. To read the entire history for a private channel, call the method with no latest or oldest arguments, and then continue paging using the instructions below. )
43
- g.command 'history' do |c|
44
- c.flag 'channel', desc: 'Private channel to fetch history for.'
45
- c.flag 'latest', desc: 'End of time range of messages to include in results.'
46
- c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
47
- c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
48
- c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
49
- c.action do |_global_options, options, _args|
50
- puts JSON.dump($client.groups_history(options))
51
- end
52
- end
53
-
54
- g.desc 'This method returns information about a private channel.'
55
- g.long_desc %( This method returns information about a private channel. )
56
- g.command 'info' do |c|
57
- c.flag 'channel', desc: 'Private channel to get info on.'
58
- c.action do |_global_options, options, _args|
59
- puts JSON.dump($client.groups_info(options))
60
- end
61
- end
62
-
63
- g.desc 'This method is used to invite a user to a private channel. The calling user must be a member of the private channel.'
64
- g.long_desc %( This method is used to invite a user to a private channel. The calling user must be a member of the private channel. )
65
- g.command 'invite' do |c|
66
- c.flag 'channel', desc: 'Private channel to invite user to.'
67
- c.flag 'user', desc: 'User to invite.'
68
- c.action do |_global_options, options, _args|
69
- puts JSON.dump($client.groups_invite(options))
70
- end
71
- end
72
-
73
- g.desc 'This method allows a user to remove another member from a private channel.'
74
- g.long_desc %( This method allows a user to remove another member from a private channel. )
75
- g.command 'kick' do |c|
76
- c.flag 'channel', desc: 'Private channel to remove user from.'
77
- c.flag 'user', desc: 'User to remove from private channel.'
78
- c.action do |_global_options, options, _args|
79
- puts JSON.dump($client.groups_kick(options))
80
- end
81
- end
82
-
83
- g.desc 'This method is used to leave a private channel.'
84
- g.long_desc %( This method is used to leave a private channel. )
85
- g.command 'leave' do |c|
86
- c.flag 'channel', desc: 'Private channel to leave.'
87
- c.action do |_global_options, options, _args|
88
- puts JSON.dump($client.groups_leave(options))
89
- end
90
- end
91
-
92
- g.desc 'This method returns a list of private channels in the team that the caller is in and archived groups that the caller was in.'
93
- g.long_desc %( This method returns a list of private channels in the team that the caller is in and archived groups that the caller was in. The list of (non-deactivated) members in each private channel is also returned. )
94
- g.command 'list' do |c|
95
- c.flag 'exclude_archived', desc: "Don't return archived private channels."
96
- c.action do |_global_options, options, _args|
97
- puts JSON.dump($client.groups_list(options))
98
- end
99
- end
100
-
101
- g.desc 'This method moves the read cursor in a private channel.'
102
- g.long_desc %( This method moves the read cursor in a private channel. )
103
- g.command 'mark' do |c|
104
- c.flag 'channel', desc: 'Private channel to set reading cursor in.'
105
- c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
106
- c.action do |_global_options, options, _args|
107
- puts JSON.dump($client.groups_mark(options))
108
- end
109
- end
110
-
111
- g.desc 'This method opens a private channel.'
112
- g.long_desc %( This method opens a private channel. )
113
- g.command 'open' do |c|
114
- c.flag 'channel', desc: 'Private channel to open.'
115
- c.action do |_global_options, options, _args|
116
- puts JSON.dump($client.groups_open(options))
117
- end
118
- end
119
-
120
- g.desc 'This method renames a private channel.'
121
- g.long_desc %( This method renames a private channel. )
122
- g.command 'rename' do |c|
123
- c.flag 'channel', desc: 'Private channel to rename.'
124
- c.flag 'name', desc: 'New name for private channel.'
125
- c.action do |_global_options, options, _args|
126
- puts JSON.dump($client.groups_rename(options))
127
- end
128
- end
129
-
130
- g.desc 'This method is used to change the purpose of a private channel. The calling user must be a member of the private channel.'
131
- g.long_desc %( This method is used to change the purpose of a private channel. The calling user must be a member of the private channel. )
132
- g.command 'setPurpose' do |c|
133
- c.flag 'channel', desc: 'Private channel to set the purpose of.'
134
- c.flag 'purpose', desc: 'The new purpose.'
135
- c.action do |_global_options, options, _args|
136
- puts JSON.dump($client.groups_setPurpose(options))
137
- end
138
- end
139
-
140
- g.desc 'This method is used to change the topic of a private channel. The calling user must be a member of the private channel.'
141
- g.long_desc %( This method is used to change the topic of a private channel. The calling user must be a member of the private channel. )
142
- g.command 'setTopic' do |c|
143
- c.flag 'channel', desc: 'Private channel to set the topic of.'
144
- c.flag 'topic', desc: 'The new topic.'
145
- c.action do |_global_options, options, _args|
146
- puts JSON.dump($client.groups_setTopic(options))
147
- end
148
- end
149
-
150
- g.desc 'This method unarchives a private channel.'
151
- g.long_desc %( This method unarchives a private channel. )
152
- g.command 'unarchive' do |c|
153
- c.flag 'channel', desc: 'Private channel to unarchive.'
154
- c.action do |_global_options, options, _args|
155
- puts JSON.dump($client.groups_unarchive(options))
156
- end
157
- end
158
-
159
6
  g.desc 'This method returns the ID of a group.'
160
7
  g.long_desc %( This method returns the ID of a group. )
161
8
  g.command 'id' do |c|
data/bin/commands/im.rb CHANGED
@@ -1,53 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Get info on your direct messages.'
4
5
  command 'im' do |g|
5
- g.desc 'This method closes a direct message channel.'
6
- g.long_desc %( This method closes a direct message channel. )
7
- g.command 'close' do |c|
8
- c.flag 'channel', desc: 'Direct message channel to close.'
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.im_close(options))
11
- end
12
- end
13
-
14
- g.desc 'This method returns a portion of messages/events from the specified direct message channel.'
15
- g.long_desc %( This method returns a portion of messages/events from the specified direct message channel. To read the entire history for a direct message channel, call the method with no latest or oldest arguments, and then continue paging using the instructions below. )
16
- g.command 'history' do |c|
17
- c.flag 'channel', desc: 'Direct message channel to fetch history for.'
18
- c.flag 'latest', desc: 'End of time range of messages to include in results.'
19
- c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
20
- c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
21
- c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
22
- c.action do |_global_options, options, _args|
23
- puts JSON.dump($client.im_history(options))
24
- end
25
- end
26
-
27
- g.desc 'This method returns a list of all im channels that the user has.'
28
- g.long_desc %( This method returns a list of all im channels that the user has. )
29
- g.command 'list' do |c|
30
- c.action do |_global_options, options, _args|
31
- puts JSON.dump($client.im_list(options))
32
- end
33
- end
34
-
35
- g.desc 'This method moves the read cursor in a direct message channel.'
36
- g.long_desc %( This method moves the read cursor in a direct message channel. )
37
- g.command 'mark' do |c|
38
- c.flag 'channel', desc: 'Direct message channel to set reading cursor in.'
39
- c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
40
- c.action do |_global_options, options, _args|
41
- puts JSON.dump($client.im_mark(options))
42
- end
43
- end
44
-
45
- g.desc 'This method opens a direct message channel with another member of your Slack team.'
46
- g.long_desc %( This method opens a direct message channel with another member of your Slack team. )
47
- g.command 'open' do |c|
48
- c.flag 'user', desc: 'User to open a direct message channel with.'
49
- c.action do |_global_options, options, _args|
50
- puts JSON.dump($client.im_open(options))
51
- end
52
- end
53
6
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'Migration methods.'
5
+ command 'migration' do |g|
6
+ g.desc 'For Enterprise Grid workspaces, map local user IDs to global user IDs'
7
+ g.long_desc %( For Enterprise Grid workspaces, map local user IDs to global user IDs )
8
+ g.command 'exchange' do |c|
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.'
11
+ c.flag 'to_old', desc: 'Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.'
12
+ c.action do |_global_options, options, _args|
13
+ puts JSON.dump($client.migration_exchange(options))
14
+ end
15
+ end
16
+ end
data/bin/commands/mpim.rb CHANGED
@@ -1,53 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Get info on your multiparty direct messages.'
4
5
  command 'mpim' do |g|
5
- g.desc 'This method closes a multiparty direct message channel.'
6
- g.long_desc %( This method closes a multiparty direct message channel. )
7
- g.command 'close' do |c|
8
- c.flag 'channel', desc: 'MPIM to close.'
9
- c.action do |_global_options, options, _args|
10
- puts JSON.dump($client.mpim_close(options))
11
- end
12
- end
13
-
14
- g.desc 'This method returns a portion of messages/events from the specified multiparty direct message channel.'
15
- g.long_desc %( This method returns a portion of messages/events from the specified multiparty direct message channel. To read the entire history for a multiparty direct message, call the method with no latest or oldest arguments, and then continue paging using the instructions below. )
16
- g.command 'history' do |c|
17
- c.flag 'channel', desc: 'Multiparty direct message to fetch history for.'
18
- c.flag 'latest', desc: 'End of time range of messages to include in results.'
19
- c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
20
- c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
21
- c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
22
- c.action do |_global_options, options, _args|
23
- puts JSON.dump($client.mpim_history(options))
24
- end
25
- end
26
-
27
- g.desc 'This method returns a list of all multiparty direct message channels that the user has.'
28
- g.long_desc %( This method returns a list of all multiparty direct message channels that the user has. )
29
- g.command 'list' do |c|
30
- c.action do |_global_options, options, _args|
31
- puts JSON.dump($client.mpim_list(options))
32
- end
33
- end
34
-
35
- g.desc 'This method moves the read cursor in a multiparty direct message channel.'
36
- g.long_desc %( This method moves the read cursor in a multiparty direct message channel. )
37
- g.command 'mark' do |c|
38
- c.flag 'channel', desc: 'multiparty direct message channel to set reading cursor in.'
39
- c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
40
- c.action do |_global_options, options, _args|
41
- puts JSON.dump($client.mpim_mark(options))
42
- end
43
- end
44
-
45
- g.desc 'This method opens a multiparty direct message.'
46
- g.long_desc %( This method opens a multiparty direct message. )
47
- g.command 'open' do |c|
48
- c.flag 'users', desc: 'Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.'
49
- c.action do |_global_options, options, _args|
50
- puts JSON.dump($client.mpim_open(options))
51
- end
52
- end
53
6
  end
@@ -1,14 +1,16 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Oauth methods.'
4
5
  command 'oauth' do |g|
5
- g.desc 'This method allows you to exchange a temporary OAuth code for an API access token.'
6
- g.long_desc %( This method allows you to exchange a temporary OAuth code for an API access token. This is used as part of the OAuth authentication flow. )
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. )
7
8
  g.command 'access' do |c|
8
9
  c.flag 'client_id', desc: 'Issued when you created your application.'
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).'
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.'
12
14
  c.action do |_global_options, options, _args|
13
15
  puts JSON.dump($client.oauth_access(options))
14
16
  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,21 +1,20 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Pins methods.'
4
5
  command 'pins' do |g|
5
- g.desc 'This method pins an item (file, file comment, channel message, or group message) to a particular channel.'
6
- g.long_desc %( This method pins an item (file, file comment, channel message, or group message) to a particular channel. The channel argument is required and one of file, file_comment, or timestamp must also be specified. )
6
+ g.desc 'Pins an item to a channel.'
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
15
14
  end
16
15
 
17
- g.desc 'This method lists the items pinned to a channel.'
18
- g.long_desc %( This method lists the items pinned to a channel. )
16
+ g.desc 'Lists items pinned to a channel.'
17
+ g.long_desc %( Lists items pinned to a channel. )
19
18
  g.command 'list' do |c|
20
19
  c.flag 'channel', desc: 'Channel to get pinned items for.'
21
20
  c.action do |_global_options, options, _args|
@@ -23,12 +22,10 @@ command 'pins' do |g|
23
22
  end
24
23
  end
25
24
 
26
- g.desc 'This method un-pins an item (file, file comment, channel message, or group message) from a channel.'
27
- g.long_desc %( This method un-pins an item (file, file comment, channel message, or group message) from a channel. The channel argument is required and one of file, file_comment, or timestamp must also be specified. )
25
+ g.desc 'Un-pins an item from a channel.'
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,50 +1,52 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Reactions methods.'
4
5
  command 'reactions' do |g|
5
- g.desc 'This method adds a reaction (emoji) to an item (file, file comment, channel message, group message, or direct message).'
6
- g.long_desc %( This method adds a reaction (emoji) to an item (file, file comment, channel message, group message, or direct message). One of file, file_comment, or the combination of channel and timestamp must be specified. )
6
+ g.desc 'Adds a reaction to an item.'
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
- c.flag 'file', desc: 'File to add reaction to.'
10
- c.flag 'file_comment', desc: 'File comment to add reaction to.'
11
9
  c.flag 'channel', desc: 'Channel where the message to add reaction to was posted.'
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))
15
14
  end
16
15
  end
17
16
 
18
- g.desc 'This method returns a list of all reactions for a single item (file, file comment, channel message, group message, or direct message).'
19
- g.long_desc %( This method returns a list of all reactions for a single item (file, file comment, channel message, group message, or direct message). )
17
+ g.desc 'Gets reactions for an item.'
18
+ g.long_desc %( Gets reactions for an item. )
20
19
  g.command 'get' do |c|
20
+ c.flag 'channel', desc: 'Channel where the message to get reactions for was posted.'
21
21
  c.flag 'file', desc: 'File to get reactions for.'
22
22
  c.flag 'file_comment', desc: 'File comment to get reactions for.'
23
- c.flag 'channel', desc: 'Channel where the message to get reactions for was posted.'
24
- c.flag 'timestamp', desc: 'Timestamp of the message to get reactions for.'
25
23
  c.flag 'full', desc: 'If true always return the complete reaction list.'
24
+ c.flag 'timestamp', desc: 'Timestamp of the message to get reactions for.'
26
25
  c.action do |_global_options, options, _args|
27
26
  puts JSON.dump($client.reactions_get(options))
28
27
  end
29
28
  end
30
29
 
31
- g.desc 'This method returns a list of all items (file, file comment, channel message, group message, or direct message) reacted to by a user.'
32
- g.long_desc %( This method returns a list of all items (file, file comment, channel message, group message, or direct message) reacted to by a user. )
30
+ g.desc 'Lists reactions made by a user.'
31
+ g.long_desc %( Lists reactions made by a user. )
33
32
  g.command 'list' do |c|
34
- c.flag 'user', desc: 'Show reactions made by this user. Defaults to the authed user.'
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.'
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
+ c.flag 'user', desc: 'Show reactions made by this user. Defaults to the authed user.'
36
38
  c.action do |_global_options, options, _args|
37
39
  puts JSON.dump($client.reactions_list(options))
38
40
  end
39
41
  end
40
42
 
41
- g.desc 'This method removes a reaction (emoji) from an item (file, file comment, channel message, group message, or direct message).'
42
- g.long_desc %( This method removes a reaction (emoji) from an item (file, file comment, channel message, group message, or direct message). One of file, file_comment, or the combination of channel and timestamp must be specified. )
43
+ g.desc 'Removes a reaction from an item.'
44
+ g.long_desc %( Removes a reaction from an item. )
43
45
  g.command 'remove' do |c|
44
46
  c.flag 'name', desc: 'Reaction (emoji) name.'
47
+ c.flag 'channel', desc: 'Channel where the message to remove reaction from was posted.'
45
48
  c.flag 'file', desc: 'File to remove reaction from.'
46
49
  c.flag 'file_comment', desc: 'File comment to remove reaction from.'
47
- c.flag 'channel', desc: 'Channel where the message to remove reaction from was posted.'
48
50
  c.flag 'timestamp', desc: 'Timestamp of the message to remove reaction from.'
49
51
  c.action do |_global_options, options, _args|
50
52
  puts JSON.dump($client.reactions_remove(options))
@@ -1,48 +1,55 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Reminders methods.'
4
5
  command 'reminders' do |g|
5
- g.desc 'This method creates a reminder.'
6
- g.long_desc %( This method creates a reminder. )
6
+ g.desc 'Creates a reminder.'
7
+ g.long_desc %( Creates a reminder. )
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))
13
16
  end
14
17
  end
15
18
 
16
- g.desc 'This method completes a reminder.'
17
- g.long_desc %( This method completes a reminder. )
19
+ g.desc 'Marks a reminder as complete.'
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
23
27
  end
24
28
 
25
- g.desc 'This method deletes a reminder.'
26
- g.long_desc %( This method deletes a reminder. )
29
+ g.desc 'Deletes a reminder.'
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
32
37
  end
33
38
 
34
- g.desc 'This method returns information about a reminder.'
35
- g.long_desc %( This method returns information about a reminder. )
39
+ g.desc 'Gets information about a reminder.'
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
41
47
  end
42
48
 
43
- g.desc 'This method lists all reminders created by or for a given user.'
44
- g.long_desc %( This method lists all reminders created by or for a given user. )
49
+ g.desc 'Lists all reminders created by or for a given user.'
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,13 +1,28 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Rtm methods.'
4
5
  command 'rtm' do |g|
5
- g.desc 'This method starts a Real Time Messaging API session. Refer to the'
6
- g.long_desc %( This method starts a Real Time Messaging API session. Refer to the RTM API documentation for full details on how to use the RTM API. )
6
+ g.desc 'Starts a Real Time Messaging session.'
7
+ g.long_desc %( Starts a Real Time Messaging session. )
8
+ g.command 'connect' do |c|
9
+ c.flag 'batch_presence_aware', desc: 'Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.'
10
+ c.flag 'presence_sub', desc: 'Only deliver presence events when requested by subscription. See presence subscriptions.'
11
+ c.action do |_global_options, options, _args|
12
+ puts JSON.dump($client.rtm_connect(options))
13
+ end
14
+ end
15
+
16
+ g.desc 'Deprecated: Starts a Real Time Messaging session. Use rtm.connect instead.'
17
+ g.long_desc %( Deprecated: Starts a Real Time Messaging session. Use rtm.connect instead. )
7
18
  g.command 'start' do |c|
8
- c.flag 'simple_latest', desc: 'Return timestamp only for latest message object of each channel (improves performance).'
9
- c.flag 'no_unreads', desc: 'Skip unread counts for each channel (improves performance).'
19
+ c.flag 'batch_presence_aware', desc: 'Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.'
20
+ c.flag 'include_locale', desc: 'Set this to true to receive the locale for users and channels. Defaults to false.'
10
21
  c.flag 'mpim_aware', desc: 'Returns MPIMs to the client in the API response.'
22
+ c.flag 'no_latest', desc: 'Exclude latest timestamps for channels, groups, mpims, and ims. Automatically sets no_unreads to 1.'
23
+ c.flag 'no_unreads', desc: 'Skip unread counts for each channel (improves performance).'
24
+ c.flag 'presence_sub', desc: 'Only deliver presence events when requested by subscription. See presence subscriptions.'
25
+ c.flag 'simple_latest', desc: 'Return timestamp only for latest message object of each channel (improves performance).'
11
26
  c.action do |_global_options, options, _args|
12
27
  puts JSON.dump($client.rtm_start(options))
13
28
  end
@@ -1,38 +1,43 @@
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
- g.desc 'This method allows to to search both messages and files in a single call.'
6
- g.long_desc %( This method allows to to search both messages and files in a single call. )
6
+ g.desc 'Searches for messages and files matching a query.'
7
+ g.long_desc %( Searches for messages and files matching a query. )
7
8
  g.command 'all' do |c|
8
9
  c.flag 'query', desc: 'Search query. May contains booleans, etc.'
10
+ c.flag 'highlight', desc: 'Pass a value of true to enable query highlight markers (see below).'
9
11
  c.flag 'sort', desc: 'Return matches sorted by either score or timestamp.'
10
12
  c.flag 'sort_dir', desc: 'Change sort direction to ascending (asc) or descending (desc).'
11
- c.flag 'highlight', desc: 'Pass a value of 1 to enable query highlight markers (see below).'
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
15
17
  end
16
18
 
17
- g.desc 'This method returns files matching a search query.'
18
- g.long_desc %( This method returns files matching a search query. )
19
+ g.desc 'Searches for files matching a query.'
20
+ g.long_desc %( Searches for files matching a query. )
19
21
  g.command 'files' do |c|
20
- c.flag 'query', desc: 'Search query. May contain booleans, etc.'
22
+ c.flag 'query', desc: 'Search query.'
23
+ c.flag 'highlight', desc: 'Pass a value of true to enable query highlight markers (see below).'
21
24
  c.flag 'sort', desc: 'Return matches sorted by either score or timestamp.'
22
25
  c.flag 'sort_dir', desc: 'Change sort direction to ascending (asc) or descending (desc).'
23
- c.flag 'highlight', desc: 'Pass a value of 1 to enable query highlight markers (see below).'
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
27
30
  end
28
31
 
29
- g.desc 'This method returns messages matching a search query.'
30
- g.long_desc %( This method returns messages matching a search query. )
32
+ g.desc 'Searches for messages matching a query.'
33
+ g.long_desc %( Searches for messages matching a query. )
31
34
  g.command 'messages' do |c|
32
- c.flag 'query', desc: 'Search query. May contains booleans, etc.'
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."
37
+ c.flag 'highlight', desc: 'Pass a value of true to enable query highlight markers (see below).'
33
38
  c.flag 'sort', desc: 'Return matches sorted by either score or timestamp.'
34
39
  c.flag 'sort_dir', desc: 'Change sort direction to ascending (asc) or descending (desc).'
35
- c.flag 'highlight', desc: 'Pass a value of 1 to enable query highlight markers (see below).'
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