slack-ruby-client 0.13.0 → 0.17.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 (356) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +24 -5
  5. data/.rubocop_todo.yml +100 -54
  6. data/.travis.yml +4 -8
  7. data/CHANGELOG.md +118 -35
  8. data/CONTRIBUTING.md +17 -6
  9. data/Dangerfile +2 -0
  10. data/Gemfile +10 -5
  11. data/LICENSE.md +1 -1
  12. data/README.md +185 -48
  13. data/Rakefile +2 -1
  14. data/UPGRADING.md +30 -2
  15. data/bin/commands.rb +32 -0
  16. data/bin/commands/admin_analytics.rb +16 -0
  17. data/bin/commands/admin_apps.rb +40 -0
  18. data/bin/commands/admin_apps_approved.rb +17 -0
  19. data/bin/commands/admin_apps_requests.rb +16 -0
  20. data/bin/commands/admin_apps_restricted.rb +17 -0
  21. data/bin/commands/admin_barriers.rb +47 -0
  22. data/bin/commands/admin_conversations.rb +159 -0
  23. data/bin/commands/admin_conversations_ekm.rb +17 -0
  24. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  25. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  26. data/bin/commands/admin_emoji.rb +54 -0
  27. data/bin/commands/admin_inviteRequests.rb +36 -0
  28. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  29. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  30. data/bin/commands/admin_teams.rb +27 -0
  31. data/bin/commands/admin_teams_admins.rb +16 -0
  32. data/bin/commands/admin_teams_owners.rb +16 -0
  33. data/bin/commands/admin_teams_settings.rb +64 -0
  34. data/bin/commands/admin_usergroups.rb +48 -0
  35. data/bin/commands/admin_users.rb +97 -0
  36. data/bin/commands/admin_users_session.rb +38 -0
  37. data/bin/commands/api.rb +1 -1
  38. data/bin/commands/apps.rb +15 -0
  39. data/bin/commands/apps_connections.rb +13 -0
  40. data/bin/commands/apps_event_authorizations.rb +16 -0
  41. data/bin/commands/apps_permissions.rb +1 -0
  42. data/bin/commands/apps_permissions_resources.rb +1 -0
  43. data/bin/commands/apps_permissions_scopes.rb +1 -0
  44. data/bin/commands/apps_permissions_users.rb +1 -0
  45. data/bin/commands/auth.rb +1 -0
  46. data/bin/commands/auth_teams.rb +16 -0
  47. data/bin/commands/bots.rb +2 -0
  48. data/bin/commands/calls.rb +52 -0
  49. data/bin/commands/calls_participants.rb +25 -0
  50. data/bin/commands/channels.rb +1 -153
  51. data/bin/commands/chat.rb +51 -10
  52. data/bin/commands/chat_scheduledMessages.rb +19 -0
  53. data/bin/commands/conversations.rb +16 -3
  54. data/bin/commands/dialog.rb +1 -0
  55. data/bin/commands/dnd.rb +5 -2
  56. data/bin/commands/emoji.rb +1 -0
  57. data/bin/commands/files.rb +8 -17
  58. data/bin/commands/files_comments.rb +1 -21
  59. data/bin/commands/files_remote.rb +78 -0
  60. data/bin/commands/groups.rb +1 -161
  61. data/bin/commands/im.rb +1 -62
  62. data/bin/commands/migration.rb +2 -0
  63. data/bin/commands/mpim.rb +1 -60
  64. data/bin/commands/oauth.rb +2 -1
  65. data/bin/commands/oauth_v2.rb +17 -0
  66. data/bin/commands/pins.rb +1 -4
  67. data/bin/commands/reactions.rb +3 -3
  68. data/bin/commands/reminders.rb +1 -0
  69. data/bin/commands/rtm.rb +1 -0
  70. data/bin/commands/search.rb +4 -0
  71. data/bin/commands/stars.rb +1 -0
  72. data/bin/commands/team.rb +5 -0
  73. data/bin/commands/team_profile.rb +1 -0
  74. data/bin/commands/usergroups.rb +6 -0
  75. data/bin/commands/usergroups_users.rb +3 -0
  76. data/bin/commands/users.rb +5 -3
  77. data/bin/commands/users_admin.rb +1 -0
  78. data/bin/commands/users_prefs.rb +1 -0
  79. data/bin/commands/users_profile.rb +6 -5
  80. data/bin/commands/views.rb +48 -0
  81. data/bin/commands/workflows.rb +38 -0
  82. data/bin/slack +2 -3
  83. data/examples/hi_real_time_and_web/Gemfile +1 -0
  84. data/examples/hi_real_time_and_web/hi.rb +7 -3
  85. data/examples/hi_real_time_async_async/Gemfile +1 -0
  86. data/examples/hi_real_time_async_async/hi.rb +6 -2
  87. data/examples/hi_web/Gemfile +1 -0
  88. data/examples/hi_web/hi.rb +1 -0
  89. data/examples/new_ticket/Gemfile +1 -0
  90. data/examples/new_ticket/new_ticket.rb +1 -0
  91. data/lib/slack-ruby-client.rb +10 -4
  92. data/lib/slack.rb +1 -0
  93. data/lib/slack/config.rb +1 -0
  94. data/lib/slack/events/config.rb +32 -0
  95. data/lib/slack/events/request.rb +70 -0
  96. data/lib/slack/logger.rb +6 -5
  97. data/lib/slack/messages/formatting.rb +1 -0
  98. data/lib/slack/messages/message.rb +1 -4
  99. data/lib/slack/real_time/api/message.rb +3 -1
  100. data/lib/slack/real_time/api/message_id.rb +1 -0
  101. data/lib/slack/real_time/api/ping.rb +5 -2
  102. data/lib/slack/real_time/api/typing.rb +3 -1
  103. data/lib/slack/real_time/client.rb +98 -28
  104. data/lib/slack/real_time/concurrency.rb +1 -2
  105. data/lib/slack/real_time/concurrency/async.rb +79 -6
  106. data/lib/slack/real_time/config.rb +6 -10
  107. data/lib/slack/real_time/models.rb +1 -0
  108. data/lib/slack/real_time/models/base.rb +1 -4
  109. data/lib/slack/real_time/models/bot.rb +1 -0
  110. data/lib/slack/real_time/models/channel.rb +1 -0
  111. data/lib/slack/real_time/models/group.rb +1 -0
  112. data/lib/slack/real_time/models/im.rb +1 -0
  113. data/lib/slack/real_time/models/team.rb +1 -0
  114. data/lib/slack/real_time/models/user.rb +1 -0
  115. data/lib/slack/real_time/socket.rb +44 -15
  116. data/lib/slack/real_time/stores.rb +1 -0
  117. data/lib/slack/real_time/stores/base.rb +4 -1
  118. data/lib/slack/real_time/stores/starter.rb +11 -0
  119. data/lib/slack/real_time/stores/store.rb +28 -25
  120. data/lib/slack/version.rb +2 -1
  121. data/lib/slack/web/api/endpoints.rb +64 -0
  122. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  123. data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
  124. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  125. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  126. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  127. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  128. data/lib/slack/web/api/endpoints/admin_conversations.rb +246 -0
  129. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  130. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  131. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  132. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  133. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  134. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  135. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  136. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  137. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  138. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  139. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  140. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  141. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  142. data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
  143. data/lib/slack/web/api/endpoints/api.rb +1 -2
  144. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  145. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  146. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  147. data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
  148. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +1 -0
  149. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +1 -0
  150. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +1 -0
  151. data/lib/slack/web/api/endpoints/auth.rb +1 -0
  152. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  153. data/lib/slack/web/api/endpoints/bots.rb +3 -0
  154. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  155. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  156. data/lib/slack/web/api/endpoints/channels.rb +2 -243
  157. data/lib/slack/web/api/endpoints/chat.rb +112 -21
  158. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  159. data/lib/slack/web/api/endpoints/conversations.rb +40 -19
  160. data/lib/slack/web/api/endpoints/dialog.rb +1 -0
  161. data/lib/slack/web/api/endpoints/dnd.rb +7 -1
  162. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  163. data/lib/slack/web/api/endpoints/files.rb +10 -17
  164. data/lib/slack/web/api/endpoints/files_comments.rb +1 -33
  165. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  166. data/lib/slack/web/api/endpoints/groups.rb +1 -253
  167. data/lib/slack/web/api/endpoints/im.rb +1 -101
  168. data/lib/slack/web/api/endpoints/migration.rb +3 -0
  169. data/lib/slack/web/api/endpoints/mpim.rb +1 -96
  170. data/lib/slack/web/api/endpoints/oauth.rb +2 -4
  171. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  172. data/lib/slack/web/api/endpoints/pins.rb +4 -11
  173. data/lib/slack/web/api/endpoints/reactions.rb +10 -9
  174. data/lib/slack/web/api/endpoints/reminders.rb +1 -0
  175. data/lib/slack/web/api/endpoints/rtm.rb +1 -0
  176. data/lib/slack/web/api/endpoints/search.rb +7 -0
  177. data/lib/slack/web/api/endpoints/stars.rb +3 -2
  178. data/lib/slack/web/api/endpoints/team.rb +9 -0
  179. data/lib/slack/web/api/endpoints/team_profile.rb +1 -0
  180. data/lib/slack/web/api/endpoints/usergroups.rb +11 -0
  181. data/lib/slack/web/api/endpoints/usergroups_users.rb +5 -0
  182. data/lib/slack/web/api/endpoints/users.rb +8 -7
  183. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  184. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  185. data/lib/slack/web/api/endpoints/users_profile.rb +4 -3
  186. data/lib/slack/web/api/endpoints/views.rb +97 -0
  187. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  188. data/lib/slack/web/api/error.rb +1 -0
  189. data/lib/slack/web/api/errors.rb +848 -0
  190. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  191. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  192. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  193. data/lib/slack/web/api/mixins.rb +2 -0
  194. data/lib/slack/web/api/mixins/channels.id.rb +2 -3
  195. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  196. data/lib/slack/web/api/mixins/groups.id.rb +2 -3
  197. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  198. data/lib/slack/web/api/mixins/users.id.rb +2 -3
  199. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  200. data/lib/slack/web/api/patches/chat.1.patch +71 -0
  201. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  202. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  203. data/lib/slack/web/api/templates/command.erb +1 -0
  204. data/lib/slack/web/api/templates/commands.erb +1 -0
  205. data/lib/slack/web/api/templates/endpoints.erb +2 -0
  206. data/lib/slack/web/api/templates/errors.erb +20 -0
  207. data/lib/slack/web/api/templates/method.erb +5 -1
  208. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  209. data/lib/slack/web/client.rb +2 -1
  210. data/lib/slack/web/config.rb +3 -0
  211. data/lib/slack/web/faraday/connection.rb +24 -20
  212. data/lib/slack/web/faraday/request.rb +1 -0
  213. data/lib/slack/web/faraday/response/raise_error.rb +21 -6
  214. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  215. data/lib/slack/web/pagination/cursor.rb +6 -2
  216. data/lib/slack_ruby_client.rb +1 -0
  217. data/lib/tasks/git.rake +1 -0
  218. data/lib/tasks/real_time.rake +15 -5
  219. data/lib/tasks/update.rake +1 -0
  220. data/lib/tasks/web.rake +39 -10
  221. data/screenshots/create-app.png +0 -0
  222. data/slack-ruby-client.gemspec +8 -4
  223. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  224. data/spec/fixtures/slack/web/{groups_info.yml → conversations_info.yml} +4 -4
  225. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  226. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  227. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  228. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  229. data/spec/integration/integration_spec.rb +116 -49
  230. data/spec/slack/config_spec.rb +2 -0
  231. data/spec/slack/events/config_spec.rb +33 -0
  232. data/spec/slack/events/request_spec.rb +184 -0
  233. data/spec/slack/messages/formatting_spec.rb +25 -13
  234. data/spec/slack/real_time/api/message_spec.rb +6 -1
  235. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  236. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  237. data/spec/slack/real_time/client_spec.rb +228 -30
  238. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  239. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  240. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  241. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  242. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  243. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  244. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  245. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  246. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  247. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  248. data/spec/slack/real_time/rtm_connect_spec.rb +2 -1
  249. data/spec/slack/real_time/rtm_start_spec.rb +2 -1
  250. data/spec/slack/real_time/store_spec.rb +2 -1
  251. data/spec/slack/slack_spec.rb +37 -5
  252. data/spec/slack/version_spec.rb +2 -1
  253. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  254. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  255. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  256. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  257. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
  258. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  259. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  260. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  261. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +93 -0
  262. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  263. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  264. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  265. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  266. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  267. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  268. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  269. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  270. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  271. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
  272. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  273. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  274. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  275. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  276. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  277. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  278. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  279. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  280. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  281. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  282. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  283. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  284. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  285. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/conversations_spec.rb +21 -12
  287. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  288. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +112 -36
  289. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  290. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  291. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  292. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  293. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  294. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  295. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  296. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  297. data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
  298. data/spec/slack/web/api/endpoints/im_spec.rb +1 -31
  299. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  300. data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -31
  301. data/spec/slack/web/api/endpoints/oauth_spec.rb +4 -14
  302. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  303. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  304. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  305. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  306. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  307. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  308. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  309. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  310. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  311. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  312. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  313. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  314. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  315. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  317. data/spec/slack/web/api/error_spec.rb +4 -2
  318. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  319. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  320. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  321. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  322. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  323. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  324. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  325. data/spec/slack/web/client_spec.rb +166 -18
  326. data/spec/slack/web/faraday/response/raise_error_spec.rb +47 -12
  327. data/spec/spec_helper.rb +8 -1
  328. data/spec/support/queue_with_timeout.rb +5 -4
  329. data/spec/support/real_time/concurrency/mock.rb +1 -0
  330. data/spec/support/real_time/connected_client.rb +9 -3
  331. data/spec/support/real_time/event.rb +1 -0
  332. data/spec/support/token.rb +1 -0
  333. data/spec/support/vcr.rb +5 -0
  334. metadata +226 -52
  335. data/examples/hi_real_time/Gemfile +0 -5
  336. data/examples/hi_real_time/hi.gif +0 -0
  337. data/examples/hi_real_time/hi.rb +0 -37
  338. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  339. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  340. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  341. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  342. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  343. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  344. data/lib/slack/real_time/concurrency/celluloid.rb +0 -103
  345. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
  346. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  347. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  348. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  349. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  350. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  351. data/screenshots/register-bot.png +0 -0
  352. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
  353. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
  354. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
  355. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
  356. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
@@ -0,0 +1,34 @@
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 AdminTeamsOwners
9
+ #
10
+ # List all of the owners on a given workspace.
11
+ #
12
+ # @option options [Object] :team_id
13
+ # .
14
+ # @option options [Object] :cursor
15
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
16
+ # @option options [Object] :limit
17
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
18
+ # @see https://api.slack.com/methods/admin.teams.owners.list
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.teams.owners/admin.teams.owners.list.json
20
+ def admin_teams_owners_list(options = {})
21
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
22
+ if block_given?
23
+ Pagination::Cursor.new(self, :admin_teams_owners_list, options).each do |page|
24
+ yield page
25
+ end
26
+ else
27
+ post('admin.teams.owners.list', options)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,99 @@
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 AdminTeamsSettings
9
+ #
10
+ # Fetch information about settings in a workspace
11
+ #
12
+ # @option options [Object] :team_id
13
+ # .
14
+ # @see https://api.slack.com/methods/admin.teams.settings.info
15
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.teams.settings/admin.teams.settings.info.json
16
+ def admin_teams_settings_info(options = {})
17
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
18
+ post('admin.teams.settings.info', options)
19
+ end
20
+
21
+ #
22
+ # Set the default channels of a workspace.
23
+ #
24
+ # @option options [Object] :channel_ids
25
+ # An array of channel IDs.
26
+ # @option options [Object] :team_id
27
+ # ID for the workspace to set the default channel for.
28
+ # @see https://api.slack.com/methods/admin.teams.settings.setDefaultChannels
29
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.teams.settings/admin.teams.settings.setDefaultChannels.json
30
+ def admin_teams_settings_setDefaultChannels(options = {})
31
+ throw ArgumentError.new('Required arguments :channel_ids missing') if options[:channel_ids].nil?
32
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
33
+ post('admin.teams.settings.setDefaultChannels', options)
34
+ end
35
+
36
+ #
37
+ # Set the description of a given workspace.
38
+ #
39
+ # @option options [Object] :description
40
+ # The new description for the workspace.
41
+ # @option options [Object] :team_id
42
+ # ID for the workspace to set the description for.
43
+ # @see https://api.slack.com/methods/admin.teams.settings.setDescription
44
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.teams.settings/admin.teams.settings.setDescription.json
45
+ def admin_teams_settings_setDescription(options = {})
46
+ throw ArgumentError.new('Required arguments :description missing') if options[:description].nil?
47
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
48
+ post('admin.teams.settings.setDescription', options)
49
+ end
50
+
51
+ #
52
+ # An API method that allows admins to set the discoverability of a given workspace
53
+ #
54
+ # @option options [Object] :discoverability
55
+ # This workspace's discovery setting. It must be set to one of open, invite_only, closed, or unlisted.
56
+ # @option options [Object] :team_id
57
+ # The ID of the workspace to set discoverability on.
58
+ # @see https://api.slack.com/methods/admin.teams.settings.setDiscoverability
59
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.teams.settings/admin.teams.settings.setDiscoverability.json
60
+ def admin_teams_settings_setDiscoverability(options = {})
61
+ throw ArgumentError.new('Required arguments :discoverability missing') if options[:discoverability].nil?
62
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
63
+ post('admin.teams.settings.setDiscoverability', options)
64
+ end
65
+
66
+ #
67
+ # Sets the icon of a workspace.
68
+ #
69
+ # @option options [Object] :image_url
70
+ # Image URL for the icon.
71
+ # @option options [Object] :team_id
72
+ # ID for the workspace to set the icon for.
73
+ # @see https://api.slack.com/methods/admin.teams.settings.setIcon
74
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.teams.settings/admin.teams.settings.setIcon.json
75
+ def admin_teams_settings_setIcon(options = {})
76
+ throw ArgumentError.new('Required arguments :image_url missing') if options[:image_url].nil?
77
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
78
+ post('admin.teams.settings.setIcon', options)
79
+ end
80
+
81
+ #
82
+ # Set the name of a given workspace.
83
+ #
84
+ # @option options [Object] :name
85
+ # The new name of the workspace.
86
+ # @option options [Object] :team_id
87
+ # ID for the workspace to set the name for.
88
+ # @see https://api.slack.com/methods/admin.teams.settings.setName
89
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.teams.settings/admin.teams.settings.setName.json
90
+ def admin_teams_settings_setName(options = {})
91
+ throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
92
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
93
+ post('admin.teams.settings.setName', options)
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,77 @@
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 AdminUsergroups
9
+ #
10
+ # Add up to one hundred default channels to an IDP group.
11
+ #
12
+ # @option options [Object] :channel_ids
13
+ # Comma separated string of channel IDs.
14
+ # @option options [Object] :usergroup_id
15
+ # ID of the IDP group to add default channels for.
16
+ # @option options [Object] :team_id
17
+ # The workspace to add default channels in.
18
+ # @see https://api.slack.com/methods/admin.usergroups.addChannels
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.usergroups/admin.usergroups.addChannels.json
20
+ def admin_usergroups_addChannels(options = {})
21
+ throw ArgumentError.new('Required arguments :channel_ids missing') if options[:channel_ids].nil?
22
+ throw ArgumentError.new('Required arguments :usergroup_id missing') if options[:usergroup_id].nil?
23
+ post('admin.usergroups.addChannels', options)
24
+ end
25
+
26
+ #
27
+ # Associate one or more default workspaces with an organization-wide IDP group.
28
+ #
29
+ # @option options [Object] :team_ids
30
+ # A comma separated list of encoded team (workspace) IDs. Each workspace MUST belong to the organization associated with the token.
31
+ # @option options [Object] :usergroup_id
32
+ # An encoded usergroup (IDP Group) ID.
33
+ # @option options [Object] :auto_provision
34
+ # When true, this method automatically creates new workspace accounts for the IDP group members.
35
+ # @see https://api.slack.com/methods/admin.usergroups.addTeams
36
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.usergroups/admin.usergroups.addTeams.json
37
+ def admin_usergroups_addTeams(options = {})
38
+ throw ArgumentError.new('Required arguments :team_ids missing') if options[:team_ids].nil?
39
+ throw ArgumentError.new('Required arguments :usergroup_id missing') if options[:usergroup_id].nil?
40
+ post('admin.usergroups.addTeams', options)
41
+ end
42
+
43
+ #
44
+ # List the channels linked to an org-level IDP group (user group).
45
+ #
46
+ # @option options [Object] :usergroup_id
47
+ # ID of the IDP group to list default channels for.
48
+ # @option options [Object] :include_num_members
49
+ # Flag to include or exclude the count of members per channel.
50
+ # @option options [Object] :team_id
51
+ # ID of the the workspace.
52
+ # @see https://api.slack.com/methods/admin.usergroups.listChannels
53
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.usergroups/admin.usergroups.listChannels.json
54
+ def admin_usergroups_listChannels(options = {})
55
+ throw ArgumentError.new('Required arguments :usergroup_id missing') if options[:usergroup_id].nil?
56
+ post('admin.usergroups.listChannels', options)
57
+ end
58
+
59
+ #
60
+ # Remove one or more default channels from an org-level IDP group (user group).
61
+ #
62
+ # @option options [Object] :channel_ids
63
+ # Comma-separated string of channel IDs.
64
+ # @option options [Object] :usergroup_id
65
+ # ID of the IDP Group.
66
+ # @see https://api.slack.com/methods/admin.usergroups.removeChannels
67
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.usergroups/admin.usergroups.removeChannels.json
68
+ def admin_usergroups_removeChannels(options = {})
69
+ throw ArgumentError.new('Required arguments :channel_ids missing') if options[:channel_ids].nil?
70
+ throw ArgumentError.new('Required arguments :usergroup_id missing') if options[:usergroup_id].nil?
71
+ post('admin.usergroups.removeChannels', options)
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,161 @@
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 AdminUsers
9
+ #
10
+ # Add an Enterprise user to a workspace.
11
+ #
12
+ # @option options [Object] :team_id
13
+ # The ID (T1234) of the workspace.
14
+ # @option options [Object] :user_id
15
+ # The ID of the user to add to the workspace.
16
+ # @option options [Object] :channel_ids
17
+ # Comma separated values of channel IDs to add user in the new workspace.
18
+ # @option options [Object] :is_restricted
19
+ # True if user should be added to the workspace as a guest.
20
+ # @option options [Object] :is_ultra_restricted
21
+ # True if user should be added to the workspace as a single-channel guest.
22
+ # @see https://api.slack.com/methods/admin.users.assign
23
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.assign.json
24
+ def admin_users_assign(options = {})
25
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
26
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
27
+ post('admin.users.assign', options)
28
+ end
29
+
30
+ #
31
+ # Invite a user to a workspace.
32
+ #
33
+ # @option options [Object] :channel_ids
34
+ # A comma-separated list of channel_ids for this user to join. At least one channel is required.
35
+ # @option options [Object] :email
36
+ # The email address of the person to invite.
37
+ # @option options [Object] :team_id
38
+ # The ID (T1234) of the workspace.
39
+ # @option options [Object] :custom_message
40
+ # An optional message to send to the user in the invite email.
41
+ # @option options [Object] :guest_expiration_ts
42
+ # Timestamp when guest account should be disabled. Only include this timestamp if you are inviting a guest user and you want their account to expire on a certain date.
43
+ # @option options [Object] :is_restricted
44
+ # Is this user a multi-channel guest user? (default: false).
45
+ # @option options [Object] :is_ultra_restricted
46
+ # Is this user a single channel guest user? (default: false).
47
+ # @option options [Object] :real_name
48
+ # Full name of the user.
49
+ # @option options [Object] :resend
50
+ # Allow this invite to be resent in the future if a user has not signed up yet. (default: false).
51
+ # @see https://api.slack.com/methods/admin.users.invite
52
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.invite.json
53
+ def admin_users_invite(options = {})
54
+ throw ArgumentError.new('Required arguments :channel_ids missing') if options[:channel_ids].nil?
55
+ throw ArgumentError.new('Required arguments :email missing') if options[:email].nil?
56
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
57
+ post('admin.users.invite', options)
58
+ end
59
+
60
+ #
61
+ # List users on a workspace
62
+ #
63
+ # @option options [Object] :cursor
64
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
65
+ # @option options [Object] :limit
66
+ # Limit for how many users to be retrieved per page.
67
+ # @option options [Object] :team_id
68
+ # The ID (T1234) of the workspace.
69
+ # @see https://api.slack.com/methods/admin.users.list
70
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.list.json
71
+ def admin_users_list(options = {})
72
+ if block_given?
73
+ Pagination::Cursor.new(self, :admin_users_list, options).each do |page|
74
+ yield page
75
+ end
76
+ else
77
+ post('admin.users.list', options)
78
+ end
79
+ end
80
+
81
+ #
82
+ # Remove a user from a workspace.
83
+ #
84
+ # @option options [Object] :team_id
85
+ # The ID (T1234) of the workspace.
86
+ # @option options [Object] :user_id
87
+ # The ID of the user to remove.
88
+ # @see https://api.slack.com/methods/admin.users.remove
89
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.remove.json
90
+ def admin_users_remove(options = {})
91
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
92
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
93
+ post('admin.users.remove', options)
94
+ end
95
+
96
+ #
97
+ # Set an existing guest, regular user, or owner to be an admin user.
98
+ #
99
+ # @option options [Object] :team_id
100
+ # The ID (T1234) of the workspace.
101
+ # @option options [Object] :user_id
102
+ # The ID of the user to designate as an admin.
103
+ # @see https://api.slack.com/methods/admin.users.setAdmin
104
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.setAdmin.json
105
+ def admin_users_setAdmin(options = {})
106
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
107
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
108
+ post('admin.users.setAdmin', options)
109
+ end
110
+
111
+ #
112
+ # Set an expiration for a guest user
113
+ #
114
+ # @option options [Object] :expiration_ts
115
+ # Timestamp when guest account should be disabled.
116
+ # @option options [Object] :user_id
117
+ # The ID of the user to set an expiration for.
118
+ # @option options [Object] :team_id
119
+ # The ID (T1234) of the workspace.
120
+ # @see https://api.slack.com/methods/admin.users.setExpiration
121
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.setExpiration.json
122
+ def admin_users_setExpiration(options = {})
123
+ throw ArgumentError.new('Required arguments :expiration_ts missing') if options[:expiration_ts].nil?
124
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
125
+ post('admin.users.setExpiration', options)
126
+ end
127
+
128
+ #
129
+ # Set an existing guest, regular user, or admin user to be a workspace owner.
130
+ #
131
+ # @option options [Object] :team_id
132
+ # The ID (T1234) of the workspace.
133
+ # @option options [Object] :user_id
134
+ # Id of the user to promote to owner.
135
+ # @see https://api.slack.com/methods/admin.users.setOwner
136
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.setOwner.json
137
+ def admin_users_setOwner(options = {})
138
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
139
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
140
+ post('admin.users.setOwner', options)
141
+ end
142
+
143
+ #
144
+ # Set an existing guest user, admin user, or owner to be a regular user.
145
+ #
146
+ # @option options [Object] :team_id
147
+ # The ID (T1234) of the workspace.
148
+ # @option options [Object] :user_id
149
+ # The ID of the user to designate as a regular user.
150
+ # @see https://api.slack.com/methods/admin.users.setRegular
151
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users/admin.users.setRegular.json
152
+ def admin_users_setRegular(options = {})
153
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
154
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
155
+ post('admin.users.setRegular', options)
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,66 @@
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 AdminUsersSession
9
+ #
10
+ # Revoke a single session for a user. The user will be forced to login to Slack.
11
+ #
12
+ # @option options [Object] :session_id
13
+ # ID of the session to invalidate.
14
+ # @option options [Object] :team_id
15
+ # ID of the workspace that the session belongs to.
16
+ # @see https://api.slack.com/methods/admin.users.session.invalidate
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users.session/admin.users.session.invalidate.json
18
+ def admin_users_session_invalidate(options = {})
19
+ throw ArgumentError.new('Required arguments :session_id missing') if options[:session_id].nil?
20
+ throw ArgumentError.new('Required arguments :team_id missing') if options[:team_id].nil?
21
+ post('admin.users.session.invalidate', options)
22
+ end
23
+
24
+ #
25
+ # List active user sessions for an organization
26
+ #
27
+ # @option options [Object] :cursor
28
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
29
+ # @option options [Object] :limit
30
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
31
+ # @option options [Object] :team_id
32
+ # The ID of the workspace you'd like active sessions for. If you pass a team_id, you'll need to pass a user_id as well.
33
+ # @option options [Object] :user_id
34
+ # The ID of user you'd like active sessions for. If you pass a user_id, you'll need to pass a team_id as well.
35
+ # @see https://api.slack.com/methods/admin.users.session.list
36
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users.session/admin.users.session.list.json
37
+ def admin_users_session_list(options = {})
38
+ if block_given?
39
+ Pagination::Cursor.new(self, :admin_users_session_list, options).each do |page|
40
+ yield page
41
+ end
42
+ else
43
+ post('admin.users.session.list', options)
44
+ end
45
+ end
46
+
47
+ #
48
+ # Wipes all valid sessions on all devices for a given user
49
+ #
50
+ # @option options [Object] :user_id
51
+ # The ID of the user to wipe sessions for.
52
+ # @option options [Object] :mobile_only
53
+ # Only expire mobile sessions (default: false).
54
+ # @option options [Object] :web_only
55
+ # Only expire web sessions (default: false).
56
+ # @see https://api.slack.com/methods/admin.users.session.reset
57
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users.session/admin.users.session.reset.json
58
+ def admin_users_session_reset(options = {})
59
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
60
+ post('admin.users.session.reset', options)
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  module Slack
@@ -10,8 +11,6 @@ module Slack
10
11
  #
11
12
  # @option options [Object] :error
12
13
  # Error response to return.
13
- # @option options [Object] :foo
14
- # example property to return.
15
14
  # @see https://api.slack.com/methods/api.test
16
15
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/api/api.test.json
17
16
  def api_test(options = {})