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,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
@@ -5,79 +6,6 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module Im
8
- #
9
- # This method closes a direct message channel.
10
- #
11
- # @option options [im] :channel
12
- # Direct message channel to close.
13
- # @see https://api.slack.com/methods/im.close
14
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.close.json
15
- def im_close(options = {})
16
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
17
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
18
- post('im.close', options)
19
- end
20
-
21
- #
22
- # This method returns a portion of messages/events from the specified direct message channel.
23
- # To read the entire history for a direct message channel, call the method with no latest or
24
- # oldest arguments, and then continue paging using the instructions below.
25
- #
26
- # @option options [im] :channel
27
- # Direct message channel to fetch history for.
28
- # @option options [timestamp] :latest
29
- # End of time range of messages to include in results.
30
- # @option options [timestamp] :oldest
31
- # Start of time range of messages to include in results.
32
- # @option options [Object] :inclusive
33
- # Include messages with latest or oldest timestamp in results.
34
- # @option options [Object] :unreads
35
- # Include unread_count_display in the output?.
36
- # @see https://api.slack.com/methods/im.history
37
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.history.json
38
- def im_history(options = {})
39
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
40
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
41
- post('im.history', options)
42
- end
43
-
44
- #
45
- # This method returns a list of all im channels that the user has.
46
- #
47
- # @see https://api.slack.com/methods/im.list
48
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.list.json
49
- def im_list(options = {})
50
- post('im.list', options)
51
- end
52
-
53
- #
54
- # This method moves the read cursor in a direct message channel.
55
- #
56
- # @option options [im] :channel
57
- # Direct message channel to set reading cursor in.
58
- # @option options [timestamp] :ts
59
- # Timestamp of the most recently seen message.
60
- # @see https://api.slack.com/methods/im.mark
61
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.mark.json
62
- def im_mark(options = {})
63
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
64
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
65
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
66
- post('im.mark', options)
67
- end
68
-
69
- #
70
- # This method opens a direct message channel with another member of your Slack team.
71
- #
72
- # @option options [user] :user
73
- # User to open a direct message channel with.
74
- # @see https://api.slack.com/methods/im.open
75
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.open.json
76
- def im_open(options = {})
77
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
78
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
79
- post('im.open', options)
80
- end
81
9
  end
82
10
  end
83
11
  end
@@ -0,0 +1,28 @@
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 Migration
9
+ #
10
+ # For Enterprise Grid workspaces, map local user IDs to global user IDs
11
+ #
12
+ # @option options [array] :users
13
+ # A comma-separated list of user ids, up to 400 per request.
14
+ # @option options [string] :team_id
15
+ # Specify team_id starts with T in case of Org Token.
16
+ # @option options [boolean] :to_old
17
+ # Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.
18
+ # @see https://api.slack.com/methods/migration.exchange
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/migration/migration.exchange.json
20
+ def migration_exchange(options = {})
21
+ throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
22
+ post('migration.exchange', options)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ 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
@@ -5,78 +6,6 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module Mpim
8
- #
9
- # This method closes a multiparty direct message channel.
10
- #
11
- # @option options [channel] :channel
12
- # MPIM to close.
13
- # @see https://api.slack.com/methods/mpim.close
14
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.close.json
15
- def mpim_close(options = {})
16
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
17
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
18
- post('mpim.close', options)
19
- end
20
-
21
- #
22
- # This method returns a portion of messages/events from the specified multiparty direct message channel.
23
- # To read the entire history for a multiparty direct message, call the method with no latest or
24
- # oldest arguments, and then continue paging using the instructions below.
25
- #
26
- # @option options [channel] :channel
27
- # Multiparty direct message to fetch history for.
28
- # @option options [timestamp] :latest
29
- # End of time range of messages to include in results.
30
- # @option options [timestamp] :oldest
31
- # Start of time range of messages to include in results.
32
- # @option options [Object] :inclusive
33
- # Include messages with latest or oldest timestamp in results.
34
- # @option options [Object] :unreads
35
- # Include unread_count_display in the output?.
36
- # @see https://api.slack.com/methods/mpim.history
37
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.history.json
38
- def mpim_history(options = {})
39
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
40
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
41
- post('mpim.history', options)
42
- end
43
-
44
- #
45
- # This method returns a list of all multiparty direct message channels that the user has.
46
- #
47
- # @see https://api.slack.com/methods/mpim.list
48
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.list.json
49
- def mpim_list(options = {})
50
- post('mpim.list', options)
51
- end
52
-
53
- #
54
- # This method moves the read cursor in a multiparty direct message channel.
55
- #
56
- # @option options [channel] :channel
57
- # multiparty direct message channel to set reading cursor in.
58
- # @option options [timestamp] :ts
59
- # Timestamp of the most recently seen message.
60
- # @see https://api.slack.com/methods/mpim.mark
61
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.mark.json
62
- def mpim_mark(options = {})
63
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
64
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
65
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
66
- post('mpim.mark', options)
67
- end
68
-
69
- #
70
- # This method opens a multiparty direct message.
71
- #
72
- # @option options [Object] :users
73
- # Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.
74
- # @see https://api.slack.com/methods/mpim.open
75
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.open.json
76
- def mpim_open(options = {})
77
- throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
78
- post('mpim.open', options)
79
- end
80
9
  end
81
10
  end
82
11
  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,23 +7,21 @@ module Slack
6
7
  module Endpoints
7
8
  module Oauth
8
9
  #
9
- # This method allows you to exchange a temporary OAuth code for an API access token.
10
- # This is used as part of the OAuth authentication flow.
10
+ # Exchanges a temporary OAuth verifier code for an access token.
11
11
  #
12
- # @option options [Object] :client_id
12
+ # @option options [string] :client_id
13
13
  # Issued when you created your application.
14
- # @option options [Object] :client_secret
14
+ # @option options [string] :client_secret
15
15
  # Issued when you created your application.
16
- # @option options [Object] :code
16
+ # @option options [string] :code
17
17
  # The code param returned via the OAuth callback.
18
- # @option options [Object] :redirect_uri
18
+ # @option options [string] :redirect_uri
19
19
  # This must match the originally submitted URI (if one was sent).
20
+ # @option options [boolean] :single_channel
21
+ # Request the user to add your app only to a single channel. Only valid with a legacy workspace app.
20
22
  # @see https://api.slack.com/methods/oauth.access
21
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/oauth/oauth.access.json
23
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth/oauth.access.json
22
24
  def oauth_access(options = {})
23
- throw ArgumentError.new('Required arguments :client_id missing') if options[:client_id].nil?
24
- throw ArgumentError.new('Required arguments :client_secret missing') if options[:client_secret].nil?
25
- throw ArgumentError.new('Required arguments :code missing') if options[:code].nil?
26
25
  post('oauth.access', options)
27
26
  end
28
27
  end
@@ -0,0 +1,48 @@
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 OauthV2
9
+ #
10
+ # Exchanges a temporary OAuth verifier code for an access token.
11
+ #
12
+ # @option options [string] :client_id
13
+ # Issued when you created your application.
14
+ # @option options [string] :client_secret
15
+ # Issued when you created your application.
16
+ # @option options [string] :code
17
+ # The code param returned via the OAuth callback.
18
+ # @option options [string] :grant_type
19
+ # The grant_type param as described in the OAuth spec.
20
+ # @option options [string] :redirect_uri
21
+ # This must match the originally submitted URI (if one was sent).
22
+ # @option options [string] :refresh_token
23
+ # The refresh_token param as described in the OAuth spec.
24
+ # @see https://api.slack.com/methods/oauth.v2.access
25
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth.v2/oauth.v2.access.json
26
+ def oauth_v2_access(options = {})
27
+ post('oauth.v2.access', options)
28
+ end
29
+
30
+ #
31
+ # Exchanges a legacy access token for a new expiring access token and refresh token
32
+ #
33
+ # @option options [string] :client_id
34
+ # Issued when you created your application.
35
+ # @option options [string] :client_secret
36
+ # Issued when you created your application.
37
+ # @see https://api.slack.com/methods/oauth.v2.exchange
38
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth.v2/oauth.v2.exchange.json
39
+ def oauth_v2_exchange(options = {})
40
+ throw ArgumentError.new('Required arguments :client_id missing') if options[:client_id].nil?
41
+ throw ArgumentError.new('Required arguments :client_secret missing') if options[:client_secret].nil?
42
+ post('oauth.v2.exchange', options)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,42 @@
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 OpenidConnect
9
+ #
10
+ # Exchanges a temporary OAuth verifier code for an access token for Sign in with Slack.
11
+ #
12
+ # @option options [string] :client_id
13
+ # Issued when you created your application.
14
+ # @option options [string] :client_secret
15
+ # Issued when you created your application.
16
+ # @option options [string] :code
17
+ # The code param returned via the OAuth callback.
18
+ # @option options [string] :grant_type
19
+ # The grant_type param as described in the OAuth spec.
20
+ # @option options [string] :redirect_uri
21
+ # This must match the originally submitted URI (if one was sent).
22
+ # @option options [string] :refresh_token
23
+ # The refresh_token param as described in the OAuth spec.
24
+ # @see https://api.slack.com/methods/openid.connect.token
25
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/openid.connect/openid.connect.token.json
26
+ def openid_connect_token(options = {})
27
+ post('openid.connect.token', options)
28
+ end
29
+
30
+ #
31
+ # Get the identity of a user who has authorized Sign in with Slack.
32
+ #
33
+ # @see https://api.slack.com/methods/openid.connect.userInfo
34
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/openid.connect/openid.connect.userInfo.json
35
+ def openid_connect_userInfo(options = {})
36
+ post('openid.connect.userInfo', options)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ 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,55 +7,45 @@ module Slack
6
7
  module Endpoints
7
8
  module Pins
8
9
  #
9
- # This method pins an item (file, file comment, channel message, or group message) to a particular channel.
10
- # The channel argument is required and one of file, file_comment, or timestamp must also be specified.
10
+ # Pins an item to a channel.
11
11
  #
12
12
  # @option options [channel] :channel
13
- # Channel to pin the item in.
14
- # @option options [file] :file
15
- # File to pin.
16
- # @option options [Object] :file_comment
17
- # File comment to pin.
18
- # @option options [Object] :timestamp
19
- # Timestamp of the message to pin.
13
+ # Channel to pin the messsage to. You must also include a timestamp when pinning messages.
14
+ # @option options [string] :timestamp
15
+ # Timestamp of the message to pin. You must also include the channel.
20
16
  # @see https://api.slack.com/methods/pins.add
21
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.add.json
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/pins/pins.add.json
22
18
  def pins_add(options = {})
23
19
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
24
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
20
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
25
21
  post('pins.add', options)
26
22
  end
27
23
 
28
24
  #
29
- # This method lists the items pinned to a channel.
25
+ # Lists items pinned to a channel.
30
26
  #
31
27
  # @option options [channel] :channel
32
28
  # Channel to get pinned items for.
33
29
  # @see https://api.slack.com/methods/pins.list
34
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.list.json
30
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/pins/pins.list.json
35
31
  def pins_list(options = {})
36
32
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
37
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
33
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
38
34
  post('pins.list', options)
39
35
  end
40
36
 
41
37
  #
42
- # This method un-pins an item (file, file comment, channel message, or group message) from a channel.
43
- # The channel argument is required and one of file, file_comment, or timestamp must also be specified.
38
+ # Un-pins an item from a channel.
44
39
  #
45
40
  # @option options [channel] :channel
46
41
  # Channel where the item is pinned to.
47
- # @option options [file] :file
48
- # File to un-pin.
49
- # @option options [Object] :file_comment
50
- # File comment to un-pin.
51
- # @option options [Object] :timestamp
42
+ # @option options [string] :timestamp
52
43
  # Timestamp of the message to un-pin.
53
44
  # @see https://api.slack.com/methods/pins.remove
54
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.remove.json
45
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/pins/pins.remove.json
55
46
  def pins_remove(options = {})
56
47
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
57
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
48
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
58
49
  post('pins.remove', options)
59
50
  end
60
51
  end
@@ -11,7 +11,7 @@ module Slack
11
11
  # @option options [Object] :presence
12
12
  # Either `active` or `away`.
13
13
  # @see https://api.slack.com/methods/presence.set
14
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/presence.set.json
14
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/presence.set.json
15
15
  def presence_set(options = {})
16
16
  throw ArgumentError.new('Required arguments :presence missing') if options[:presence].nil?
17
17
  post('presence.set', 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
@@ -6,80 +7,88 @@ module Slack
6
7
  module Endpoints
7
8
  module Reactions
8
9
  #
9
- # This method adds a reaction (emoji) to an item (file, file comment, channel message, group message, or direct message).
10
- # One of file, file_comment, or the combination of channel and timestamp must be specified.
10
+ # Adds a reaction to an item.
11
11
  #
12
- # @option options [Object] :name
13
- # Reaction (emoji) name.
14
- # @option options [file] :file
15
- # File to add reaction to.
16
- # @option options [Object] :file_comment
17
- # File comment to add reaction to.
18
12
  # @option options [channel] :channel
19
13
  # Channel where the message to add reaction to was posted.
20
- # @option options [Object] :timestamp
14
+ # @option options [string] :name
15
+ # Reaction (emoji) name.
16
+ # @option options [string] :timestamp
21
17
  # Timestamp of the message to add reaction to.
22
18
  # @see https://api.slack.com/methods/reactions.add
23
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.add.json
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.add.json
24
20
  def reactions_add(options = {})
21
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
25
22
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
26
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
23
+ throw ArgumentError.new('Required arguments :timestamp missing') if options[:timestamp].nil?
24
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
27
25
  post('reactions.add', options)
28
26
  end
29
27
 
30
28
  #
31
- # This method returns a list of all reactions for a single item (file, file comment, channel message, group message, or direct message).
29
+ # Gets reactions for an item.
32
30
  #
31
+ # @option options [channel] :channel
32
+ # Channel where the message to get reactions for was posted.
33
33
  # @option options [file] :file
34
34
  # File to get reactions for.
35
- # @option options [Object] :file_comment
35
+ # @option options [string] :file_comment
36
36
  # File comment to get reactions for.
37
- # @option options [channel] :channel
38
- # Channel where the message to get reactions for was posted.
39
- # @option options [Object] :timestamp
40
- # Timestamp of the message to get reactions for.
41
- # @option options [Object] :full
37
+ # @option options [boolean] :full
42
38
  # If true always return the complete reaction list.
39
+ # @option options [string] :timestamp
40
+ # Timestamp of the message to get reactions for.
43
41
  # @see https://api.slack.com/methods/reactions.get
44
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.get.json
42
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.get.json
45
43
  def reactions_get(options = {})
46
- 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]
47
45
  post('reactions.get', options)
48
46
  end
49
47
 
50
48
  #
51
- # This method returns a list of all items (file, file comment, channel message, group message, or direct message) reacted to by a user.
49
+ # Lists reactions made by a user.
52
50
  #
51
+ # @option options [string] :cursor
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.
53
+ # @option options [boolean] :full
54
+ # If true always return the complete reaction list.
55
+ # @option options [integer] :limit
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.
53
59
  # @option options [user] :user
54
60
  # Show reactions made by this user. Defaults to the authed user.
55
- # @option options [Object] :full
56
- # If true always return the complete reaction list.
57
61
  # @see https://api.slack.com/methods/reactions.list
58
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.list.json
62
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.list.json
59
63
  def reactions_list(options = {})
60
64
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
61
- post('reactions.list', options)
65
+ if block_given?
66
+ Pagination::Cursor.new(self, :reactions_list, options).each do |page|
67
+ yield page
68
+ end
69
+ else
70
+ post('reactions.list', options)
71
+ end
62
72
  end
63
73
 
64
74
  #
65
- # This method removes a reaction (emoji) from an item (file, file comment, channel message, group message, or direct message).
66
- # One of file, file_comment, or the combination of channel and timestamp must be specified.
75
+ # Removes a reaction from an item.
67
76
  #
68
- # @option options [Object] :name
77
+ # @option options [string] :name
69
78
  # Reaction (emoji) name.
79
+ # @option options [channel] :channel
80
+ # Channel where the message to remove reaction from was posted.
70
81
  # @option options [file] :file
71
82
  # File to remove reaction from.
72
- # @option options [Object] :file_comment
83
+ # @option options [string] :file_comment
73
84
  # File comment to remove reaction from.
74
- # @option options [channel] :channel
75
- # Channel where the message to remove reaction from was posted.
76
- # @option options [Object] :timestamp
85
+ # @option options [string] :timestamp
77
86
  # Timestamp of the message to remove reaction from.
78
87
  # @see https://api.slack.com/methods/reactions.remove
79
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.remove.json
88
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reactions/reactions.remove.json
80
89
  def reactions_remove(options = {})
81
90
  throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
82
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
91
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
83
92
  post('reactions.remove', options)
84
93
  end
85
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
@@ -6,16 +7,20 @@ module Slack
6
7
  module Endpoints
7
8
  module Reminders
8
9
  #
9
- # This method creates a reminder.
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
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.add.json
23
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.add.json
19
24
  def reminders_add(options = {})
20
25
  throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
21
26
  throw ArgumentError.new('Required arguments :time missing') if options[:time].nil?
@@ -24,46 +29,54 @@ module Slack
24
29
  end
25
30
 
26
31
  #
27
- # This method completes a reminder.
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
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.complete.json
39
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.complete.json
33
40
  def reminders_complete(options = {})
34
41
  throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
35
42
  post('reminders.complete', options)
36
43
  end
37
44
 
38
45
  #
39
- # This method deletes a reminder.
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
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.delete.json
53
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.delete.json
45
54
  def reminders_delete(options = {})
46
55
  throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
47
56
  post('reminders.delete', options)
48
57
  end
49
58
 
50
59
  #
51
- # This method returns information about a reminder.
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
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.info.json
67
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.info.json
57
68
  def reminders_info(options = {})
58
69
  throw ArgumentError.new('Required arguments :reminder missing') if options[:reminder].nil?
59
70
  post('reminders.info', options)
60
71
  end
61
72
 
62
73
  #
63
- # This method lists all reminders created by or for a given user.
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
- # @see https://github.com/dblock/slack-api-ref/blob/master/methods/reminders/reminders.list.json
79
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/reminders/reminders.list.json
67
80
  def reminders_list(options = {})
68
81
  post('reminders.list', options)
69
82
  end