slack-ruby-client 0.13.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (402) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/workflows/integration_test.yml +26 -0
  4. data/.github/workflows/lint.yml +14 -0
  5. data/.github/workflows/pr_lint.yml +21 -0
  6. data/.github/workflows/test.yml +36 -0
  7. data/.gitignore +5 -3
  8. data/.rubocop.yml +34 -5
  9. data/.rubocop_todo.yml +180 -46
  10. data/.ruby-version +1 -0
  11. data/CHANGELOG.md +119 -2
  12. data/CONTRIBUTING.md +23 -11
  13. data/Dangerfile +2 -0
  14. data/Gemfile +22 -5
  15. data/Gemfile.danger +6 -0
  16. data/LICENSE.md +1 -1
  17. data/README.md +236 -101
  18. data/RELEASING.md +2 -2
  19. data/Rakefile +2 -1
  20. data/UPGRADING.md +100 -2
  21. data/bin/commands/admin_analytics.rb +16 -0
  22. data/bin/commands/admin_apps.rb +51 -0
  23. data/bin/commands/admin_apps_approved.rb +17 -0
  24. data/bin/commands/admin_apps_requests.rb +28 -0
  25. data/bin/commands/admin_apps_restricted.rb +17 -0
  26. data/bin/commands/admin_audit_anomaly_allow.rb +23 -0
  27. data/bin/commands/admin_auth_policy.rb +39 -0
  28. data/bin/commands/admin_barriers.rb +47 -0
  29. data/bin/commands/admin_conversations.rb +171 -0
  30. data/bin/commands/admin_conversations_ekm.rb +17 -0
  31. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  32. data/bin/commands/admin_emoji.rb +54 -0
  33. data/bin/commands/admin_inviteRequests.rb +36 -0
  34. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  35. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  36. data/bin/commands/admin_teams.rb +27 -0
  37. data/bin/commands/admin_teams_admins.rb +16 -0
  38. data/bin/commands/admin_teams_owners.rb +16 -0
  39. data/bin/commands/admin_teams_settings.rb +64 -0
  40. data/bin/commands/admin_usergroups.rb +48 -0
  41. data/bin/commands/admin_users.rb +98 -0
  42. data/bin/commands/admin_users_session.rb +78 -0
  43. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  44. data/bin/commands/api.rb +1 -1
  45. data/bin/commands/apps.rb +15 -0
  46. data/bin/commands/apps_connections.rb +13 -0
  47. data/bin/commands/apps_event_authorizations.rb +16 -0
  48. data/bin/commands/apps_manifest.rb +52 -0
  49. data/bin/commands/auth.rb +1 -0
  50. data/bin/commands/auth_teams.rb +16 -0
  51. data/bin/commands/bookmarks.rb +53 -0
  52. data/bin/commands/bots.rb +2 -0
  53. data/bin/commands/calls.rb +52 -0
  54. data/bin/commands/calls_participants.rb +25 -0
  55. data/bin/commands/chat.rb +61 -14
  56. data/bin/commands/chat_scheduledMessages.rb +19 -0
  57. data/bin/commands/conversations.rb +82 -10
  58. data/bin/commands/dialog.rb +1 -0
  59. data/bin/commands/dnd.rb +6 -3
  60. data/bin/commands/emoji.rb +1 -0
  61. data/bin/commands/files.rb +34 -18
  62. data/bin/commands/files_comments.rb +1 -21
  63. data/bin/commands/files_remote.rb +78 -0
  64. data/bin/commands/migration.rb +2 -0
  65. data/bin/commands/oauth.rb +2 -14
  66. data/bin/commands/oauth_v2.rb +29 -0
  67. data/bin/commands/openid_connect.rb +27 -0
  68. data/bin/commands/pins.rb +3 -6
  69. data/bin/commands/reactions.rb +3 -3
  70. data/bin/commands/reminders.rb +7 -0
  71. data/bin/commands/rtm.rb +1 -15
  72. data/bin/commands/search.rb +6 -1
  73. data/bin/commands/stars.rb +8 -6
  74. data/bin/commands/team.rb +6 -0
  75. data/bin/commands/team_billing.rb +13 -0
  76. data/bin/commands/team_preferences.rb +13 -0
  77. data/bin/commands/team_profile.rb +1 -0
  78. data/bin/commands/tooling_tokens.rb +14 -0
  79. data/bin/commands/usergroups.rb +7 -1
  80. data/bin/commands/usergroups_users.rb +3 -0
  81. data/bin/commands/users.rb +6 -4
  82. data/bin/commands/users_admin.rb +1 -0
  83. data/bin/commands/users_prefs.rb +1 -0
  84. data/bin/commands/users_profile.rb +6 -5
  85. data/bin/commands/views.rb +50 -0
  86. data/bin/commands/workflows.rb +38 -0
  87. data/bin/commands.rb +41 -8
  88. data/bin/slack +3 -4
  89. data/examples/hi_real_time_and_web/Gemfile +1 -0
  90. data/examples/hi_real_time_and_web/hi.rb +7 -3
  91. data/examples/hi_real_time_async_async/Gemfile +1 -0
  92. data/examples/hi_real_time_async_async/hi.rb +6 -2
  93. data/examples/hi_web/Gemfile +1 -0
  94. data/examples/hi_web/hi.rb +1 -0
  95. data/examples/new_ticket/Gemfile +1 -0
  96. data/examples/new_ticket/new_ticket.rb +1 -0
  97. data/lib/slack/config.rb +2 -2
  98. data/lib/slack/events/config.rb +32 -0
  99. data/lib/slack/events/request.rb +72 -0
  100. data/lib/slack/logger.rb +6 -5
  101. data/lib/slack/messages/formatting.rb +1 -0
  102. data/lib/slack/messages/message.rb +1 -4
  103. data/lib/slack/real_time/api/message.rb +6 -3
  104. data/lib/slack/real_time/api/message_id.rb +1 -0
  105. data/lib/slack/real_time/api/ping.rb +5 -2
  106. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  107. data/lib/slack/real_time/api/typing.rb +5 -2
  108. data/lib/slack/real_time/client.rb +105 -54
  109. data/lib/slack/real_time/concurrency/async.rb +77 -6
  110. data/lib/slack/real_time/concurrency.rb +1 -2
  111. data/lib/slack/real_time/config.rb +9 -13
  112. data/lib/slack/real_time/models/base.rb +1 -4
  113. data/lib/slack/real_time/models/bot.rb +1 -0
  114. data/lib/slack/real_time/models/channel.rb +5 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/{group.rb → mpim.rb} +2 -1
  117. data/lib/slack/real_time/models/team.rb +1 -0
  118. data/lib/slack/real_time/models/user.rb +1 -0
  119. data/lib/slack/real_time/models.rb +3 -1
  120. data/lib/slack/real_time/socket.rb +45 -17
  121. data/lib/slack/real_time/stores/base.rb +28 -14
  122. data/lib/slack/real_time/stores/starter.rb +325 -297
  123. data/lib/slack/real_time/stores/store.rb +271 -196
  124. data/lib/slack/real_time/stores.rb +2 -7
  125. data/lib/slack/version.rb +2 -1
  126. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  127. data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +51 -0
  130. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  131. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  132. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  133. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations.rb +264 -0
  135. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  136. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  137. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  139. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  140. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  141. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  143. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  144. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  145. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  146. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  147. data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
  148. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  149. data/lib/slack/web/api/endpoints/api.rb +2 -3
  150. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  151. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  152. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  153. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +2 -1
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bookmarks.rb +88 -0
  157. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  158. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  159. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  160. data/lib/slack/web/api/endpoints/chat.rb +168 -65
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +182 -67
  163. data/lib/slack/web/api/endpoints/dialog.rb +5 -4
  164. data/lib/slack/web/api/endpoints/dnd.rb +9 -4
  165. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  166. data/lib/slack/web/api/endpoints/files.rb +69 -37
  167. data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/migration.rb +6 -3
  170. data/lib/slack/web/api/endpoints/oauth.rb +7 -31
  171. data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
  172. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  173. data/lib/slack/web/api/endpoints/pins.rb +11 -18
  174. data/lib/slack/web/api/endpoints/reactions.rb +22 -21
  175. data/lib/slack/web/api/endpoints/reminders.rb +23 -10
  176. data/lib/slack/web/api/endpoints/rtm.rb +3 -25
  177. data/lib/slack/web/api/endpoints/search.rb +31 -16
  178. data/lib/slack/web/api/endpoints/stars.rb +14 -11
  179. data/lib/slack/web/api/endpoints/team.rb +15 -4
  180. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  181. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  182. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  183. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  184. data/lib/slack/web/api/endpoints/usergroups.rb +31 -20
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +13 -8
  186. data/lib/slack/web/api/endpoints/users.rb +24 -23
  187. data/lib/slack/web/api/endpoints/users_admin.rb +3 -2
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +8 -7
  190. data/lib/slack/web/api/endpoints/views.rb +102 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/endpoints.rb +82 -18
  193. data/lib/slack/web/api/error.rb +1 -0
  194. data/lib/slack/web/api/errors/server_error.rb +37 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
  197. data/lib/slack/web/api/errors.rb +1116 -0
  198. data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +5 -6
  199. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  200. data/lib/slack/web/api/mixins/users.id.rb +3 -4
  201. data/lib/slack/web/api/mixins/users.search.rb +3 -1
  202. data/lib/slack/web/api/mixins.rb +2 -2
  203. data/lib/slack/web/api/patches/chat.attachments-blocks.patch +69 -0
  204. data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
  205. data/lib/slack/web/api/patches/views.view-json.patch +55 -0
  206. data/lib/slack/web/api/templates/command.erb +1 -0
  207. data/lib/slack/web/api/templates/commands.erb +1 -0
  208. data/lib/slack/web/api/templates/endpoints.erb +2 -2
  209. data/lib/slack/web/api/templates/errors.erb +20 -0
  210. data/lib/slack/web/api/templates/method.erb +6 -2
  211. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  212. data/lib/slack/web/client.rb +2 -1
  213. data/lib/slack/web/config.rb +5 -2
  214. data/lib/slack/web/faraday/connection.rb +24 -20
  215. data/lib/slack/web/faraday/request.rb +5 -1
  216. data/lib/slack/web/faraday/response/raise_error.rb +14 -7
  217. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  218. data/lib/slack/web/pagination/cursor.rb +7 -7
  219. data/lib/slack-ruby-client.rb +12 -5
  220. data/lib/slack.rb +1 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +1 -0
  223. data/lib/tasks/real_time.rake +51 -21
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +48 -12
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +7 -12
  228. data/spec/fixtures/slack/web/429_error.yml +50 -54
  229. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  230. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  231. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
  234. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
  235. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  236. data/spec/fixtures/slack/web/rtm_connect.yml +347 -26
  237. data/spec/fixtures/slack/web/users_info.yml +153 -69
  238. data/spec/fixtures/slack/web/users_list.yml +102 -41
  239. data/spec/fixtures/slack/web/views_open_error.yml +83 -0
  240. data/spec/integration/integration_spec.rb +115 -47
  241. data/spec/slack/config_spec.rb +2 -0
  242. data/spec/slack/events/config_spec.rb +35 -0
  243. data/spec/slack/events/request_spec.rb +188 -0
  244. data/spec/slack/messages/formatting_spec.rb +35 -13
  245. data/spec/slack/real_time/api/message_spec.rb +7 -2
  246. data/spec/slack/real_time/api/ping_spec.rb +3 -1
  247. data/spec/slack/real_time/api/typing_spec.rb +6 -2
  248. data/spec/slack/real_time/client_spec.rb +300 -142
  249. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  250. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  251. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  252. data/spec/slack/real_time/event_handlers/bot_spec.rb +20 -17
  253. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  254. data/spec/slack/real_time/event_handlers/im_spec.rb +31 -27
  255. data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +36 -27
  256. data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +31 -24
  257. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -7
  258. data/spec/slack/real_time/event_handlers/user_spec.rb +7 -5
  259. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  260. data/spec/slack/real_time/stores/store_spec.rb +50 -0
  261. data/spec/slack/slack_spec.rb +41 -6
  262. data/spec/slack/version_spec.rb +2 -1
  263. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  265. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +13 -0
  266. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
  268. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
  269. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  270. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  271. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  273. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  274. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  275. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  276. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  277. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  278. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  279. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  280. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  281. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  282. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  283. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +41 -0
  284. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  285. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  287. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  288. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  289. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  290. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  291. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → auth_teams_spec.rb} +2 -1
  292. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  293. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  294. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  295. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  296. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  297. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +9 -7
  298. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +144 -40
  299. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +18 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
  302. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +112 -0
  303. data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
  304. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  305. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  306. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  307. data/spec/slack/web/api/endpoints/files_spec.rb +18 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  309. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
  310. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
  311. data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -0
  312. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  314. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  315. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  317. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → team_billing_spec.rb} +2 -1
  319. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  320. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  322. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  323. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  324. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  325. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  326. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  327. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  328. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  329. data/spec/slack/web/api/error_spec.rb +7 -7
  330. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -7
  331. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  332. data/spec/slack/web/api/mixins/conversations_spec.rb +45 -0
  333. data/spec/slack/web/api/mixins/users_spec.rb +19 -8
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +47 -15
  335. data/spec/slack/web/client_spec.rb +199 -22
  336. data/spec/slack/web/faraday/request_spec.rb +80 -0
  337. data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
  338. data/spec/spec_helper.rb +9 -2
  339. data/spec/support/queue_with_timeout.rb +5 -4
  340. data/spec/support/real_time/concurrency/mock.rb +1 -0
  341. data/spec/support/real_time/connected_client.rb +6 -6
  342. data/spec/support/real_time/event.rb +1 -0
  343. data/spec/support/real_time/loaded_client.rb +120 -0
  344. data/spec/support/token.rb +1 -0
  345. data/spec/support/vcr.rb +37 -1
  346. metadata +174 -262
  347. data/.travis.yml +0 -32
  348. data/bin/commands/apps_permissions.rb +0 -22
  349. data/bin/commands/apps_permissions_resources.rb +0 -14
  350. data/bin/commands/apps_permissions_scopes.rb +0 -12
  351. data/bin/commands/apps_permissions_users.rb +0 -25
  352. data/bin/commands/channels.rb +0 -175
  353. data/bin/commands/groups.rb +0 -174
  354. data/bin/commands/im.rb +0 -67
  355. data/bin/commands/mpim.rb +0 -65
  356. data/examples/hi_real_time/Gemfile +0 -5
  357. data/examples/hi_real_time/hi.gif +0 -0
  358. data/examples/hi_real_time/hi.rb +0 -37
  359. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  360. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  361. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  362. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  363. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  364. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  365. data/lib/slack/real_time/concurrency/celluloid.rb +0 -118
  366. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
  367. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -35
  368. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -30
  369. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -20
  370. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -49
  371. data/lib/slack/web/api/endpoints/channels.rb +0 -266
  372. data/lib/slack/web/api/endpoints/groups.rb +0 -265
  373. data/lib/slack/web/api/endpoints/im.rb +0 -113
  374. data/lib/slack/web/api/endpoints/mpim.rb +0 -108
  375. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  376. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  377. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  378. data/lib/slack/web/api/mixins/groups.id.rb +0 -26
  379. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  380. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  381. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  382. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  383. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  384. data/screenshots/register-bot.png +0 -0
  385. data/spec/fixtures/slack/web/503_error.yml +0 -14
  386. data/spec/fixtures/slack/web/channels_info.yml +0 -46
  387. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  388. data/spec/fixtures/slack/web/rtm_start.yml +0 -104
  389. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
  390. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  391. data/spec/slack/real_time/rtm_start_spec.rb +0 -13
  392. data/spec/slack/real_time/store_spec.rb +0 -11
  393. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
  394. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -18
  395. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
  396. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  397. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  398. data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
  399. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
  400. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
  401. data/spec/slack/web/api/mixins/channels_spec.rb +0 -33
  402. data/spec/slack/web/api/mixins/groups_spec.rb +0 -33
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,21 +9,19 @@ module Slack
8
9
  #
9
10
  # Adds a reaction to an item.
10
11
  #
11
- # @option options [Object] :name
12
- # Reaction (emoji) name.
13
12
  # @option options [channel] :channel
14
13
  # Channel where the message to add reaction to was posted.
15
- # @option options [file] :file
16
- # File to add reaction to.
17
- # @option options [Object] :file_comment
18
- # File comment to add reaction to.
19
- # @option options [Object] :timestamp
14
+ # @option options [string] :name
15
+ # Reaction (emoji) name.
16
+ # @option options [string] :timestamp
20
17
  # Timestamp of the message to add reaction to.
21
18
  # @see https://api.slack.com/methods/reactions.add
22
19
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.add.json
23
20
  def reactions_add(options = {})
24
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
25
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
21
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
22
+ raise ArgumentError, 'Required arguments :name missing' if options[:name].nil?
23
+ raise ArgumentError, 'Required arguments :timestamp missing' if options[:timestamp].nil?
24
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
26
25
  post('reactions.add', options)
27
26
  end
28
27
 
@@ -33,28 +32,30 @@ module Slack
33
32
  # Channel where the message to get reactions for was posted.
34
33
  # @option options [file] :file
35
34
  # File to get reactions for.
36
- # @option options [Object] :file_comment
35
+ # @option options [string] :file_comment
37
36
  # File comment to get reactions for.
38
- # @option options [Object] :full
37
+ # @option options [boolean] :full
39
38
  # If true always return the complete reaction list.
40
- # @option options [Object] :timestamp
39
+ # @option options [string] :timestamp
41
40
  # Timestamp of the message to get reactions for.
42
41
  # @see https://api.slack.com/methods/reactions.get
43
42
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.get.json
44
43
  def reactions_get(options = {})
45
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
44
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
46
45
  post('reactions.get', options)
47
46
  end
48
47
 
49
48
  #
50
49
  # Lists reactions made by a user.
51
50
  #
52
- # @option options [Object] :cursor
51
+ # @option options [string] :cursor
53
52
  # 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.
54
- # @option options [Object] :full
53
+ # @option options [boolean] :full
55
54
  # If true always return the complete reaction list.
56
- # @option options [Object] :limit
55
+ # @option options [integer] :limit
57
56
  # 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.
57
+ # @option options [string] :team_id
58
+ # encoded team id to list reactions in, required if org token is used.
58
59
  # @option options [user] :user
59
60
  # Show reactions made by this user. Defaults to the authed user.
60
61
  # @see https://api.slack.com/methods/reactions.list
@@ -73,21 +74,21 @@ module Slack
73
74
  #
74
75
  # Removes a reaction from an item.
75
76
  #
76
- # @option options [Object] :name
77
+ # @option options [string] :name
77
78
  # Reaction (emoji) name.
78
79
  # @option options [channel] :channel
79
80
  # Channel where the message to remove reaction from was posted.
80
81
  # @option options [file] :file
81
82
  # File to remove reaction from.
82
- # @option options [Object] :file_comment
83
+ # @option options [string] :file_comment
83
84
  # File comment to remove reaction from.
84
- # @option options [Object] :timestamp
85
+ # @option options [string] :timestamp
85
86
  # Timestamp of the message to remove reaction from.
86
87
  # @see https://api.slack.com/methods/reactions.remove
87
88
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.remove.json
88
89
  def reactions_remove(options = {})
89
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
90
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
90
+ raise ArgumentError, 'Required arguments :name missing' if options[:name].nil?
91
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
91
92
  post('reactions.remove', options)
92
93
  end
93
94
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,17 +9,21 @@ module Slack
8
9
  #
9
10
  # Creates a reminder.
10
11
  #
11
- # @option options [Object] :text
12
+ # @option options [string] :text
12
13
  # The content of the reminder.
13
- # @option options [Object] :time
14
+ # @option options [string] :time
14
15
  # 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").
16
+ # @option options [object] :recurrence
17
+ # Specify the repeating behavior of a reminder. Available options: daily, weekly, monthly, or yearly. If weekly, may further specify the days of the week.
18
+ # @option options [string] :team_id
19
+ # Encoded team id, required if org token is used.
15
20
  # @option options [user] :user
16
21
  # The user who will receive the reminder. If no user is specified, the reminder will go to user who created it.
17
22
  # @see https://api.slack.com/methods/reminders.add
18
23
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.add.json
19
24
  def reminders_add(options = {})
20
- throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
21
- throw ArgumentError.new('Required arguments :time missing') if options[:time].nil?
25
+ raise ArgumentError, 'Required arguments :text missing' if options[:text].nil?
26
+ raise ArgumentError, 'Required arguments :time missing' if options[:time].nil?
22
27
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
23
28
  post('reminders.add', options)
24
29
  end
@@ -26,42 +31,50 @@ module Slack
26
31
  #
27
32
  # Marks a reminder as complete.
28
33
  #
29
- # @option options [Object] :reminder
34
+ # @option options [string] :reminder
30
35
  # The ID of the reminder to be marked as complete.
36
+ # @option options [string] :team_id
37
+ # Encoded team id, required if org token is used.
31
38
  # @see https://api.slack.com/methods/reminders.complete
32
39
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.complete.json
33
40
  def reminders_complete(options = {})
34
- throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
41
+ raise ArgumentError, 'Required arguments :reminder missing' if options[:reminder].nil?
35
42
  post('reminders.complete', options)
36
43
  end
37
44
 
38
45
  #
39
46
  # Deletes a reminder.
40
47
  #
41
- # @option options [Object] :reminder
48
+ # @option options [string] :reminder
42
49
  # The ID of the reminder.
50
+ # @option options [string] :team_id
51
+ # Encoded team id, required if org token is used.
43
52
  # @see https://api.slack.com/methods/reminders.delete
44
53
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.delete.json
45
54
  def reminders_delete(options = {})
46
- throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
55
+ raise ArgumentError, 'Required arguments :reminder missing' if options[:reminder].nil?
47
56
  post('reminders.delete', options)
48
57
  end
49
58
 
50
59
  #
51
60
  # Gets information about a reminder.
52
61
  #
53
- # @option options [Object] :reminder
62
+ # @option options [string] :reminder
54
63
  # The ID of the reminder.
64
+ # @option options [string] :team_id
65
+ # Encoded team id, required if org token is passed.
55
66
  # @see https://api.slack.com/methods/reminders.info
56
67
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.info.json
57
68
  def reminders_info(options = {})
58
- throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
69
+ raise ArgumentError, 'Required arguments :reminder missing' if options[:reminder].nil?
59
70
  post('reminders.info', options)
60
71
  end
61
72
 
62
73
  #
63
74
  # Lists all reminders created by or for a given user.
64
75
  #
76
+ # @option options [string] :team_id
77
+ # Encoded team id, required if org token is passed.
65
78
  # @see https://api.slack.com/methods/reminders.list
66
79
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.list.json
67
80
  def reminders_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
  module Slack
@@ -8,38 +9,15 @@ module Slack
8
9
  #
9
10
  # Starts a Real Time Messaging session.
10
11
  #
11
- # @option options [Object] :batch_presence_aware
12
+ # @option options [boolean] :batch_presence_aware
12
13
  # Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.
13
- # @option options [Object] :presence_sub
14
+ # @option options [boolean] :presence_sub
14
15
  # Only deliver presence events when requested by subscription. See presence subscriptions.
15
16
  # @see https://api.slack.com/methods/rtm.connect
16
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/rtm/rtm.connect.json
17
18
  def rtm_connect(options = {})
18
19
  post('rtm.connect', options)
19
20
  end
20
-
21
- #
22
- # Starts a Real Time Messaging session.
23
- #
24
- # @option options [Object] :batch_presence_aware
25
- # Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.
26
- # @option options [Object] :include_locale
27
- # Set this to true to receive the locale for users and channels. Defaults to false.
28
- # @option options [Object] :mpim_aware
29
- # Returns MPIMs to the client in the API response.
30
- # @option options [Object] :no_latest
31
- # Exclude latest timestamps for channels, groups, mpims, and ims. Automatically sets no_unreads to 1.
32
- # @option options [Object] :no_unreads
33
- # Skip unread counts for each channel (improves performance).
34
- # @option options [Object] :presence_sub
35
- # Only deliver presence events when requested by subscription. See presence subscriptions.
36
- # @option options [Object] :simple_latest
37
- # Return timestamp only for latest message object of each channel (improves performance).
38
- # @see https://api.slack.com/methods/rtm.start
39
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/rtm/rtm.start.json
40
- def rtm_start(options = {})
41
- post('rtm.start', options)
42
- end
43
21
  end
44
22
  end
45
23
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,55 +9,69 @@ module Slack
8
9
  #
9
10
  # Searches for messages and files matching a query.
10
11
  #
11
- # @option options [Object] :query
12
+ # @option options [string] :query
12
13
  # Search query. May contains booleans, etc.
13
- # @option options [Object] :highlight
14
+ # @option options [boolean] :highlight
14
15
  # Pass a value of true to enable query highlight markers (see below).
15
- # @option options [Object] :sort
16
+ # @option options [string] :sort
16
17
  # Return matches sorted by either score or timestamp.
17
- # @option options [Object] :sort_dir
18
+ # @option options [string] :sort_dir
18
19
  # Change sort direction to ascending (asc) or descending (desc).
20
+ # @option options [string] :team_id
21
+ # encoded team id to search in, required if org token is used.
19
22
  # @see https://api.slack.com/methods/search.all
20
23
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/search/search.all.json
21
24
  def search_all(options = {})
22
- throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
25
+ raise ArgumentError, 'Required arguments :query missing' if options[:query].nil?
23
26
  post('search.all', options)
24
27
  end
25
28
 
26
29
  #
27
30
  # Searches for files matching a query.
28
31
  #
29
- # @option options [Object] :query
32
+ # @option options [string] :query
30
33
  # Search query.
31
- # @option options [Object] :highlight
34
+ # @option options [boolean] :highlight
32
35
  # Pass a value of true to enable query highlight markers (see below).
33
- # @option options [Object] :sort
36
+ # @option options [string] :sort
34
37
  # Return matches sorted by either score or timestamp.
35
- # @option options [Object] :sort_dir
38
+ # @option options [string] :sort_dir
36
39
  # Change sort direction to ascending (asc) or descending (desc).
40
+ # @option options [string] :team_id
41
+ # encoded team id to search in, required if org token is used.
37
42
  # @see https://api.slack.com/methods/search.files
38
43
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/search/search.files.json
39
44
  def search_files(options = {})
40
- throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
45
+ raise ArgumentError, 'Required arguments :query missing' if options[:query].nil?
41
46
  post('search.files', options)
42
47
  end
43
48
 
44
49
  #
45
50
  # Searches for messages matching a query.
46
51
  #
47
- # @option options [Object] :query
52
+ # @option options [string] :query
48
53
  # Search query.
49
- # @option options [Object] :highlight
54
+ # @option options [string] :cursor
55
+ # 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.
56
+ # @option options [boolean] :highlight
50
57
  # Pass a value of true to enable query highlight markers (see below).
51
- # @option options [Object] :sort
58
+ # @option options [string] :sort
52
59
  # Return matches sorted by either score or timestamp.
53
- # @option options [Object] :sort_dir
60
+ # @option options [string] :sort_dir
54
61
  # Change sort direction to ascending (asc) or descending (desc).
62
+ # @option options [string] :team_id
63
+ # encoded team id to search in, required if org token is used.
55
64
  # @see https://api.slack.com/methods/search.messages
56
65
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/search/search.messages.json
57
66
  def search_messages(options = {})
58
- throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
59
- post('search.messages', options)
67
+ raise ArgumentError, 'Required arguments :query missing' if options[:query].nil?
68
+ if block_given?
69
+ Pagination::Cursor.new(self, :search_messages, options).each do |page|
70
+ yield page
71
+ end
72
+ else
73
+ post('search.messages', options)
74
+ end
60
75
  end
61
76
  end
62
77
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -6,30 +7,32 @@ module Slack
6
7
  module Endpoints
7
8
  module Stars
8
9
  #
9
- # Adds a star to an item.
10
+ # Save an item for later. Formerly known as _adding a star_.
10
11
  #
11
12
  # @option options [channel] :channel
12
13
  # Channel to add star to, or channel where the message to add star to was posted (used with timestamp).
13
14
  # @option options [file] :file
14
15
  # File to add star to.
15
- # @option options [Object] :file_comment
16
+ # @option options [string] :file_comment
16
17
  # File comment to add star to.
17
- # @option options [Object] :timestamp
18
+ # @option options [string] :timestamp
18
19
  # Timestamp of the message to add star to.
19
20
  # @see https://api.slack.com/methods/stars.add
20
21
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/stars/stars.add.json
21
22
  def stars_add(options = {})
22
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
23
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
23
24
  post('stars.add', options)
24
25
  end
25
26
 
26
27
  #
27
- # Lists stars for a user.
28
+ # List a user's saved items, formerly known as _stars_.
28
29
  #
29
- # @option options [Object] :cursor
30
+ # @option options [string] :cursor
30
31
  # 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.
31
- # @option options [Object] :limit
32
+ # @option options [integer] :limit
32
33
  # 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.
34
+ # @option options [string] :team_id
35
+ # encoded team id to list stars in, required if org token is used.
33
36
  # @see https://api.slack.com/methods/stars.list
34
37
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/stars/stars.list.json
35
38
  def stars_list(options = {})
@@ -43,20 +46,20 @@ module Slack
43
46
  end
44
47
 
45
48
  #
46
- # Removes a star from an item.
49
+ # Removes a saved item (star) from an item.
47
50
  #
48
51
  # @option options [channel] :channel
49
52
  # Channel to remove star from, or channel where the message to remove star from was posted (used with timestamp).
50
53
  # @option options [file] :file
51
54
  # File to remove star from.
52
- # @option options [Object] :file_comment
55
+ # @option options [string] :file_comment
53
56
  # File comment to remove star from.
54
- # @option options [Object] :timestamp
57
+ # @option options [string] :timestamp
55
58
  # Timestamp of the message to remove star from.
56
59
  # @see https://api.slack.com/methods/stars.remove
57
60
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/stars/stars.remove.json
58
61
  def stars_remove(options = {})
59
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
62
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
60
63
  post('stars.remove', options)
61
64
  end
62
65
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,8 +9,10 @@ module Slack
8
9
  #
9
10
  # Gets the access logs for the current team.
10
11
  #
11
- # @option options [Object] :before
12
+ # @option options [string] :before
12
13
  # End of time range of logs to include in results (inclusive).
14
+ # @option options [string] :team_id
15
+ # encoded team id to get logs from, required if org token is used.
13
16
  # @see https://api.slack.com/methods/team.accessLogs
14
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team/team.accessLogs.json
15
18
  def team_accessLogs(options = {})
@@ -19,6 +22,8 @@ module Slack
19
22
  #
20
23
  # Gets billable users information for the current team.
21
24
  #
25
+ # @option options [string] :team_id
26
+ # encoded team id to get the billable information from, required if org token is used.
22
27
  # @option options [user] :user
23
28
  # A user to retrieve the billable information for. Defaults to all users.
24
29
  # @see https://api.slack.com/methods/team.billableInfo
@@ -31,6 +36,10 @@ module Slack
31
36
  #
32
37
  # Gets information about the current team.
33
38
  #
39
+ # @option options [string] :domain
40
+ # 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.
41
+ # @option options [string] :team
42
+ # 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.
34
43
  # @see https://api.slack.com/methods/team.info
35
44
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team/team.info.json
36
45
  def team_info(options = {})
@@ -40,12 +49,14 @@ module Slack
40
49
  #
41
50
  # Gets the integration logs for the current team.
42
51
  #
43
- # @option options [Object] :app_id
52
+ # @option options [string] :app_id
44
53
  # Filter logs to this Slack app. Defaults to all logs.
45
- # @option options [Object] :change_type
54
+ # @option options [string] :change_type
46
55
  # Filter logs with this change type. Defaults to all logs.
47
- # @option options [Object] :service_id
56
+ # @option options [string] :service_id
48
57
  # Filter logs to this service. Defaults to all logs.
58
+ # @option options [string] :team_id
59
+ # encoded team id to get logs from, required if org token is used.
49
60
  # @option options [user] :user
50
61
  # Filter logs generated by this user's actions. Defaults to all logs.
51
62
  # @see https://api.slack.com/methods/team.integrationLogs
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module TeamBilling
9
+ #
10
+ # Reads a workspace's billing plan information.
11
+ #
12
+ # @see https://api.slack.com/methods/team.billing.info
13
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team.billing/team.billing.info.json
14
+ def team_billing_info(options = {})
15
+ post('team.billing.info', options)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module TeamPreferences
9
+ #
10
+ # Retrieve a list of a workspace's team preferences.
11
+ #
12
+ # @see https://api.slack.com/methods/team.preferences.list
13
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team.preferences/team.preferences.list.json
14
+ def team_preferences_list(options = {})
15
+ post('team.preferences.list', options)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,7 +9,7 @@ module Slack
8
9
  #
9
10
  # Retrieve a team's profile.
10
11
  #
11
- # @option options [Object] :visibility
12
+ # @option options [string] :visibility
12
13
  # Filter by visibility.
13
14
  # @see https://api.slack.com/methods/team.profile.get
14
15
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/team.profile/team.profile.get.json
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module ToolingTokens
9
+ #
10
+ # Exchanges a refresh token for a new app configuration token.
11
+ #
12
+ # @option options [string] :refresh_token
13
+ # The xoxe refresh token that was issued along with the old app configuration token.
14
+ # @see https://api.slack.com/methods/tooling.tokens.rotate
15
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/tooling.tokens/tooling.tokens.rotate.json
16
+ def tooling_tokens_rotate(options = {})
17
+ raise ArgumentError, 'Required arguments :refresh_token missing' if options[:refresh_token].nil?
18
+ post('tooling.tokens.rotate', options)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -8,20 +9,22 @@ module Slack
8
9
  #
9
10
  # Create a User Group
10
11
  #
11
- # @option options [Object] :name
12
+ # @option options [string] :name
12
13
  # A name for the User Group. Must be unique among User Groups.
13
- # @option options [Object] :channels
14
+ # @option options [array] :channels
14
15
  # A comma separated string of encoded channel IDs for which the User Group uses as a default.
15
- # @option options [Object] :description
16
+ # @option options [string] :description
16
17
  # A short description of the User Group.
17
- # @option options [Object] :handle
18
+ # @option options [string] :handle
18
19
  # A mention handle. Must be unique among channels, users and User Groups.
19
- # @option options [Object] :include_count
20
+ # @option options [boolean] :include_count
20
21
  # Include the number of users in each User Group.
22
+ # @option options [string] :team_id
23
+ # Encoded team id where the user group has to be created, required if org token is used.
21
24
  # @see https://api.slack.com/methods/usergroups.create
22
25
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.create.json
23
26
  def usergroups_create(options = {})
24
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
27
+ raise ArgumentError, 'Required arguments :name missing' if options[:name].nil?
25
28
  post('usergroups.create', options)
26
29
  end
27
30
 
@@ -30,38 +33,44 @@ module Slack
30
33
  #
31
34
  # @option options [Object] :usergroup
32
35
  # The encoded ID of the User Group to disable.
33
- # @option options [Object] :include_count
36
+ # @option options [boolean] :include_count
34
37
  # Include the number of users in the User Group.
38
+ # @option options [Object] :team_id
39
+ # Encoded team id where the user group is, required if org token is used.
35
40
  # @see https://api.slack.com/methods/usergroups.disable
36
41
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.disable.json
37
42
  def usergroups_disable(options = {})
38
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
43
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
39
44
  post('usergroups.disable', options)
40
45
  end
41
46
 
42
47
  #
43
48
  # Enable a User Group
44
49
  #
45
- # @option options [Object] :usergroup
50
+ # @option options [string] :usergroup
46
51
  # The encoded ID of the User Group to enable.
47
- # @option options [Object] :include_count
52
+ # @option options [boolean] :include_count
48
53
  # Include the number of users in the User Group.
54
+ # @option options [string] :team_id
55
+ # Encoded team id where the user group is, required if org token is used.
49
56
  # @see https://api.slack.com/methods/usergroups.enable
50
57
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.enable.json
51
58
  def usergroups_enable(options = {})
52
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
59
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
53
60
  post('usergroups.enable', options)
54
61
  end
55
62
 
56
63
  #
57
64
  # List all User Groups for a team
58
65
  #
59
- # @option options [Object] :include_count
66
+ # @option options [boolean] :include_count
60
67
  # Include the number of users in each User Group.
61
- # @option options [Object] :include_disabled
68
+ # @option options [boolean] :include_disabled
62
69
  # Include disabled User Groups.
63
- # @option options [Object] :include_users
70
+ # @option options [boolean] :include_users
64
71
  # Include the list of users for each User Group.
72
+ # @option options [string] :team_id
73
+ # encoded team id to list user groups in, required if org token is used.
65
74
  # @see https://api.slack.com/methods/usergroups.list
66
75
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.list.json
67
76
  def usergroups_list(options = {})
@@ -73,20 +82,22 @@ module Slack
73
82
  #
74
83
  # @option options [Object] :usergroup
75
84
  # The encoded ID of the User Group to update.
76
- # @option options [Object] :channels
85
+ # @option options [array] :channels
77
86
  # A comma separated string of encoded channel IDs for which the User Group uses as a default.
78
- # @option options [Object] :description
87
+ # @option options [string] :description
79
88
  # A short description of the User Group.
80
- # @option options [Object] :handle
89
+ # @option options [string] :handle
81
90
  # A mention handle. Must be unique among channels, users and User Groups.
82
- # @option options [Object] :include_count
91
+ # @option options [boolean] :include_count
83
92
  # Include the number of users in the User Group.
84
- # @option options [Object] :name
93
+ # @option options [string] :name
85
94
  # A name for the User Group. Must be unique among User Groups.
95
+ # @option options [Object] :team_id
96
+ # encoded team id where the user group exists, required if org token is used.
86
97
  # @see https://api.slack.com/methods/usergroups.update
87
98
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.update.json
88
99
  def usergroups_update(options = {})
89
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
100
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
90
101
  post('usergroups.update', options)
91
102
  end
92
103
  end