slack-ruby-client 0.14.4 → 0.16.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 (352) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +23 -7
  4. data/.rubocop_todo.yml +104 -47
  5. data/.travis.yml +1 -5
  6. data/CHANGELOG.md +41 -2
  7. data/CONTRIBUTING.md +17 -6
  8. data/Dangerfile +2 -1
  9. data/Gemfile +2 -2
  10. data/README.md +94 -53
  11. data/Rakefile +1 -0
  12. data/UPGRADING.md +20 -2
  13. data/bin/commands.rb +30 -0
  14. data/bin/commands/admin_analytics.rb +15 -0
  15. data/bin/commands/admin_apps.rb +40 -0
  16. data/bin/commands/admin_apps_approved.rb +17 -0
  17. data/bin/commands/admin_apps_requests.rb +16 -0
  18. data/bin/commands/admin_apps_restricted.rb +17 -0
  19. data/bin/commands/admin_barriers.rb +47 -0
  20. data/bin/commands/admin_conversations.rb +169 -0
  21. data/bin/commands/admin_conversations_ekm.rb +17 -0
  22. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  23. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  24. data/bin/commands/admin_emoji.rb +54 -0
  25. data/bin/commands/admin_inviteRequests.rb +36 -0
  26. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  27. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  28. data/bin/commands/admin_teams.rb +27 -0
  29. data/bin/commands/admin_teams_admins.rb +16 -0
  30. data/bin/commands/admin_teams_owners.rb +16 -0
  31. data/bin/commands/admin_teams_settings.rb +64 -0
  32. data/bin/commands/admin_usergroups.rb +48 -0
  33. data/bin/commands/admin_users.rb +97 -0
  34. data/bin/commands/admin_users_session.rb +25 -2
  35. data/bin/commands/api.rb +3 -3
  36. data/bin/commands/apps.rb +3 -2
  37. data/bin/commands/apps_connections.rb +13 -0
  38. data/bin/commands/apps_event_authorizations.rb +16 -0
  39. data/bin/commands/apps_permissions.rb +5 -4
  40. data/bin/commands/apps_permissions_resources.rb +3 -2
  41. data/bin/commands/apps_permissions_scopes.rb +3 -2
  42. data/bin/commands/apps_permissions_users.rb +5 -4
  43. data/bin/commands/auth.rb +5 -4
  44. data/bin/commands/auth_teams.rb +16 -0
  45. data/bin/commands/bots.rb +4 -2
  46. data/bin/commands/calls.rb +52 -0
  47. data/bin/commands/calls_participants.rb +25 -0
  48. data/bin/commands/channels.rb +37 -33
  49. data/bin/commands/chat.rb +34 -33
  50. data/bin/commands/chat_scheduledMessages.rb +4 -2
  51. data/bin/commands/conversations.rb +50 -38
  52. data/bin/commands/dialog.rb +3 -2
  53. data/bin/commands/dnd.rb +10 -9
  54. data/bin/commands/emoji.rb +3 -2
  55. data/bin/commands/files.rb +16 -13
  56. data/bin/commands/files_comments.rb +3 -2
  57. data/bin/commands/files_remote.rb +78 -0
  58. data/bin/commands/groups.rb +38 -35
  59. data/bin/commands/im.rb +14 -13
  60. data/bin/commands/migration.rb +4 -2
  61. data/bin/commands/mpim.rb +14 -13
  62. data/bin/commands/oauth.rb +6 -5
  63. data/bin/commands/oauth_v2.rb +17 -0
  64. data/bin/commands/pins.rb +7 -10
  65. data/bin/commands/reactions.rb +11 -11
  66. data/bin/commands/reminders.rb +11 -10
  67. data/bin/commands/rtm.rb +5 -4
  68. data/bin/commands/search.rb +11 -7
  69. data/bin/commands/stars.rb +7 -6
  70. data/bin/commands/team.rb +12 -8
  71. data/bin/commands/team_profile.rb +3 -2
  72. data/bin/commands/usergroups.rb +17 -11
  73. data/bin/commands/usergroups_users.rb +7 -4
  74. data/bin/commands/users.rb +26 -23
  75. data/bin/commands/users_admin.rb +1 -0
  76. data/bin/commands/users_prefs.rb +1 -0
  77. data/bin/commands/users_profile.rb +6 -5
  78. data/bin/commands/views.rb +48 -0
  79. data/bin/commands/workflows.rb +38 -0
  80. data/bin/slack +1 -2
  81. data/examples/hi_real_time_and_web/Gemfile +1 -0
  82. data/examples/hi_real_time_and_web/hi.rb +7 -3
  83. data/examples/hi_real_time_async_async/Gemfile +1 -0
  84. data/examples/hi_real_time_async_async/hi.rb +6 -2
  85. data/examples/hi_web/Gemfile +1 -0
  86. data/examples/hi_web/hi.rb +1 -0
  87. data/examples/new_ticket/Gemfile +1 -0
  88. data/examples/new_ticket/new_ticket.rb +1 -0
  89. data/lib/slack-ruby-client.rb +6 -4
  90. data/lib/slack.rb +1 -0
  91. data/lib/slack/config.rb +1 -0
  92. data/lib/slack/events/config.rb +1 -0
  93. data/lib/slack/events/request.rb +8 -2
  94. data/lib/slack/logger.rb +6 -5
  95. data/lib/slack/messages/formatting.rb +1 -0
  96. data/lib/slack/messages/message.rb +1 -4
  97. data/lib/slack/real_time/api/message.rb +3 -1
  98. data/lib/slack/real_time/api/message_id.rb +1 -0
  99. data/lib/slack/real_time/api/ping.rb +5 -2
  100. data/lib/slack/real_time/api/typing.rb +3 -1
  101. data/lib/slack/real_time/client.rb +21 -13
  102. data/lib/slack/real_time/concurrency.rb +1 -2
  103. data/lib/slack/real_time/concurrency/async.rb +12 -6
  104. data/lib/slack/real_time/config.rb +9 -3
  105. data/lib/slack/real_time/models.rb +1 -0
  106. data/lib/slack/real_time/models/base.rb +1 -4
  107. data/lib/slack/real_time/models/bot.rb +1 -0
  108. data/lib/slack/real_time/models/channel.rb +1 -0
  109. data/lib/slack/real_time/models/group.rb +1 -0
  110. data/lib/slack/real_time/models/im.rb +1 -0
  111. data/lib/slack/real_time/models/team.rb +1 -0
  112. data/lib/slack/real_time/models/user.rb +1 -0
  113. data/lib/slack/real_time/socket.rb +16 -13
  114. data/lib/slack/real_time/stores.rb +1 -0
  115. data/lib/slack/real_time/stores/base.rb +4 -1
  116. data/lib/slack/real_time/stores/starter.rb +1 -0
  117. data/lib/slack/real_time/stores/store.rb +16 -25
  118. data/lib/slack/version.rb +2 -1
  119. data/lib/slack/web/api/endpoints.rb +60 -0
  120. data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
  121. data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
  122. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  123. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  124. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  125. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  126. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  127. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  128. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  129. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  130. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  131. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  132. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  133. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  134. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  135. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  136. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  137. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  138. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  139. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  140. data/lib/slack/web/api/endpoints/admin_users_session.rb +40 -1
  141. data/lib/slack/web/api/endpoints/api.rb +2 -3
  142. data/lib/slack/web/api/endpoints/apps.rb +2 -1
  143. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  144. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  145. data/lib/slack/web/api/endpoints/apps_permissions.rb +3 -2
  146. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +2 -1
  147. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +2 -1
  148. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +3 -2
  149. data/lib/slack/web/api/endpoints/auth.rb +3 -2
  150. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  151. data/lib/slack/web/api/endpoints/bots.rb +4 -1
  152. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  153. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  154. data/lib/slack/web/api/endpoints/channels.rb +52 -31
  155. data/lib/slack/web/api/endpoints/chat.rb +31 -30
  156. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +5 -2
  157. data/lib/slack/web/api/endpoints/conversations.rb +55 -36
  158. data/lib/slack/web/api/endpoints/dialog.rb +2 -1
  159. data/lib/slack/web/api/endpoints/dnd.rb +5 -4
  160. data/lib/slack/web/api/endpoints/emoji.rb +2 -1
  161. data/lib/slack/web/api/endpoints/files.rb +13 -8
  162. data/lib/slack/web/api/endpoints/files_comments.rb +2 -1
  163. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  164. data/lib/slack/web/api/endpoints/groups.rb +39 -24
  165. data/lib/slack/web/api/endpoints/im.rb +17 -12
  166. data/lib/slack/web/api/endpoints/migration.rb +4 -1
  167. data/lib/slack/web/api/endpoints/mpim.rb +18 -13
  168. data/lib/slack/web/api/endpoints/oauth.rb +4 -6
  169. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  170. data/lib/slack/web/api/endpoints/pins.rb +7 -16
  171. data/lib/slack/web/api/endpoints/reactions.rb +14 -15
  172. data/lib/slack/web/api/endpoints/reminders.rb +6 -5
  173. data/lib/slack/web/api/endpoints/rtm.rb +3 -2
  174. data/lib/slack/web/api/endpoints/search.rb +10 -3
  175. data/lib/slack/web/api/endpoints/stars.rb +6 -7
  176. data/lib/slack/web/api/endpoints/team.rb +11 -5
  177. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  178. data/lib/slack/web/api/endpoints/usergroups.rb +16 -5
  179. data/lib/slack/web/api/endpoints/usergroups_users.rb +7 -2
  180. data/lib/slack/web/api/endpoints/users.rb +18 -21
  181. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  182. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  183. data/lib/slack/web/api/endpoints/users_profile.rb +4 -3
  184. data/lib/slack/web/api/endpoints/views.rb +97 -0
  185. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  186. data/lib/slack/web/api/error.rb +1 -0
  187. data/lib/slack/web/api/errors.rb +850 -0
  188. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  189. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  190. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  191. data/lib/slack/web/api/mixins.rb +2 -0
  192. data/lib/slack/web/api/mixins/channels.id.rb +2 -3
  193. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  194. data/lib/slack/web/api/mixins/groups.id.rb +2 -3
  195. data/lib/slack/web/api/mixins/ids.id.rb +3 -2
  196. data/lib/slack/web/api/mixins/users.id.rb +2 -3
  197. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  198. data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +29 -26
  199. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  200. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  201. data/lib/slack/web/api/templates/command.erb +1 -0
  202. data/lib/slack/web/api/templates/commands.erb +1 -0
  203. data/lib/slack/web/api/templates/endpoints.erb +2 -0
  204. data/lib/slack/web/api/templates/errors.erb +20 -0
  205. data/lib/slack/web/api/templates/method.erb +5 -1
  206. data/lib/slack/web/api/templates/method_spec.erb +2 -1
  207. data/lib/slack/web/client.rb +2 -1
  208. data/lib/slack/web/config.rb +3 -0
  209. data/lib/slack/web/faraday/connection.rb +24 -20
  210. data/lib/slack/web/faraday/request.rb +1 -0
  211. data/lib/slack/web/faraday/response/raise_error.rb +25 -6
  212. data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
  213. data/lib/slack/web/pagination/cursor.rb +3 -2
  214. data/lib/slack_ruby_client.rb +1 -0
  215. data/lib/tasks/git.rake +1 -0
  216. data/lib/tasks/real_time.rake +13 -5
  217. data/lib/tasks/update.rake +1 -0
  218. data/lib/tasks/web.rake +34 -10
  219. data/screenshots/create-app.png +0 -0
  220. data/slack-ruby-client.gemspec +6 -3
  221. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  222. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  223. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  224. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  225. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  226. data/spec/integration/integration_spec.rb +16 -17
  227. data/spec/slack/config_spec.rb +2 -0
  228. data/spec/slack/events/config_spec.rb +8 -4
  229. data/spec/slack/events/request_spec.rb +74 -40
  230. data/spec/slack/messages/formatting_spec.rb +25 -13
  231. data/spec/slack/real_time/api/message_spec.rb +6 -1
  232. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  233. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  234. data/spec/slack/real_time/client_spec.rb +153 -38
  235. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  236. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  237. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  238. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  239. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  240. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  241. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  242. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  243. data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
  244. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  245. data/spec/slack/real_time/store_spec.rb +2 -1
  246. data/spec/slack/slack_spec.rb +37 -5
  247. data/spec/slack/version_spec.rb +2 -1
  248. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  249. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  250. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  251. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  252. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
  253. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  254. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  255. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  256. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  257. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  258. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  259. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  260. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  261. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  262. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  263. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  264. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  265. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  266. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  267. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +9 -0
  268. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  269. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  270. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  271. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  272. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  273. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  274. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  275. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  276. data/spec/slack/web/api/endpoints/apps_spec.rb +3 -2
  277. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  278. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  279. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  280. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  281. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/conversations_spec.rb +21 -12
  283. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  284. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  285. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +80 -25
  286. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  287. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  288. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  289. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  290. data/spec/slack/web/api/endpoints/dnd_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  292. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -2
  293. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  294. data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
  295. data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
  296. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  297. data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
  298. data/spec/slack/web/api/endpoints/oauth_spec.rb +4 -14
  299. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  300. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  301. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  302. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  303. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  304. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  305. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  306. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  307. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  308. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  309. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  310. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  311. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  312. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  314. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  315. data/spec/slack/web/api/error_spec.rb +4 -2
  316. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  317. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  318. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  319. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  320. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  321. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  322. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  323. data/spec/slack/web/client_spec.rb +171 -18
  324. data/spec/slack/web/faraday/response/raise_error_spec.rb +47 -12
  325. data/spec/spec_helper.rb +2 -1
  326. data/spec/support/queue_with_timeout.rb +1 -0
  327. data/spec/support/real_time/concurrency/mock.rb +1 -0
  328. data/spec/support/real_time/connected_client.rb +9 -3
  329. data/spec/support/real_time/event.rb +1 -0
  330. data/spec/support/token.rb +1 -0
  331. data/spec/support/vcr.rb +5 -0
  332. metadata +190 -46
  333. data/examples/hi_real_time/Gemfile +0 -5
  334. data/examples/hi_real_time/hi.gif +0 -0
  335. data/examples/hi_real_time/hi.rb +0 -37
  336. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  337. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  338. data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
  339. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
  340. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  341. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
  342. data/lib/slack/real_time/concurrency/celluloid.rb +0 -136
  343. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -82
  344. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  345. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  346. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  347. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  348. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -15
  349. data/screenshots/register-bot.png +0 -0
  350. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -111
  351. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -49
  352. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Stores
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Stores
@@ -26,39 +27,29 @@ module Slack
26
27
  @users = {}
27
28
  end
28
29
 
29
- if attrs.users
30
- attrs.users.each do |data|
31
- user = Models::User.new(data)
32
- @users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
33
- end
30
+ attrs.users&.each do |data|
31
+ user = Models::User.new(data)
32
+ @users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
34
33
  end
35
34
 
36
35
  @channels = {}
37
- if attrs.channels
38
- attrs.channels.each do |data|
39
- @channels[data.id] = Models::Channel.new(data)
40
- end
36
+ attrs.channels&.each do |data|
37
+ @channels[data.id] = Models::Channel.new(data)
41
38
  end
42
39
 
43
40
  @bots = {}
44
- if attrs.bots
45
- attrs.bots.each do |data|
46
- @bots[data.id] = Models::Bot.new(data)
47
- end
41
+ attrs.bots&.each do |data|
42
+ @bots[data.id] = Models::Bot.new(data)
48
43
  end
49
44
 
50
45
  @groups = {}
51
- if attrs.groups
52
- attrs.groups.each do |data|
53
- @groups[data.id] = Models::Group.new(data)
54
- end
46
+ attrs.groups&.each do |data|
47
+ @groups[data.id] = Models::Group.new(data)
55
48
  end
56
49
 
57
50
  @ims = {}
58
- if attrs.ims
59
- attrs.ims.each do |data|
60
- @ims[data.id] = Models::Im.new(data)
61
- end
51
+ attrs.ims&.each do |data|
52
+ @ims[data.id] = Models::Im.new(data)
62
53
  end
63
54
  end
64
55
 
@@ -161,7 +152,7 @@ module Slack
161
152
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
162
153
  on :bot_changed do |data|
163
154
  bot = bots[data.bot.id]
164
- bot.merge!(data.bot) if bot
155
+ bot&.merge!(data.bot)
165
156
  end
166
157
 
167
158
  # A team channel was archived.
@@ -343,7 +334,7 @@ module Slack
343
334
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
344
335
  on :group_left do |data|
345
336
  channel = groups[data.channel]
346
- channel.members.delete(self.self.id) if channel && channel.key?(:members)
337
+ channel.members.delete(self.self.id) if channel&.key?(:members)
347
338
  end
348
339
 
349
340
  # A private group read marker was updated.
@@ -378,7 +369,7 @@ module Slack
378
369
  # @see https://api.slack.com/events/im_close
379
370
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
380
371
  on :im_close do |data|
381
- return unless ims && ims.key?(data.channel)
372
+ return unless ims&.key?(data.channel)
382
373
 
383
374
  ims[data.channel].is_open = false
384
375
  end
@@ -404,7 +395,7 @@ module Slack
404
395
  # @see https://api.slack.com/events/im_open
405
396
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
406
397
  on :im_open do |data|
407
- return unless ims && ims.key?(data.channel)
398
+ return unless ims&.key?(data.channel)
408
399
 
409
400
  ims[data.channel].is_open = true
410
401
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
- VERSION = '0.14.4'.freeze
3
+ VERSION = '0.16.0'
3
4
  end
@@ -1,14 +1,40 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
4
+ require_relative 'endpoints/admin_analytics'
5
+ require_relative 'endpoints/admin_apps'
6
+ require_relative 'endpoints/admin_apps_approved'
7
+ require_relative 'endpoints/admin_apps_requests'
8
+ require_relative 'endpoints/admin_apps_restricted'
9
+ require_relative 'endpoints/admin_barriers'
10
+ require_relative 'endpoints/admin_conversations'
11
+ require_relative 'endpoints/admin_conversations_ekm'
12
+ require_relative 'endpoints/admin_conversations_restrictAccess'
13
+ require_relative 'endpoints/admin_conversations_whitelist'
14
+ require_relative 'endpoints/admin_emoji'
15
+ require_relative 'endpoints/admin_inviteRequests'
16
+ require_relative 'endpoints/admin_inviteRequests_approved'
17
+ require_relative 'endpoints/admin_inviteRequests_denied'
18
+ require_relative 'endpoints/admin_teams'
19
+ require_relative 'endpoints/admin_teams_admins'
20
+ require_relative 'endpoints/admin_teams_owners'
21
+ require_relative 'endpoints/admin_teams_settings'
22
+ require_relative 'endpoints/admin_usergroups'
23
+ require_relative 'endpoints/admin_users'
3
24
  require_relative 'endpoints/admin_users_session'
4
25
  require_relative 'endpoints/api'
5
26
  require_relative 'endpoints/apps'
27
+ require_relative 'endpoints/apps_connections'
28
+ require_relative 'endpoints/apps_event_authorizations'
6
29
  require_relative 'endpoints/apps_permissions'
7
30
  require_relative 'endpoints/apps_permissions_resources'
8
31
  require_relative 'endpoints/apps_permissions_scopes'
9
32
  require_relative 'endpoints/apps_permissions_users'
10
33
  require_relative 'endpoints/auth'
34
+ require_relative 'endpoints/auth_teams'
11
35
  require_relative 'endpoints/bots'
36
+ require_relative 'endpoints/calls'
37
+ require_relative 'endpoints/calls_participants'
12
38
  require_relative 'endpoints/channels'
13
39
  require_relative 'endpoints/chat'
14
40
  require_relative 'endpoints/chat_scheduledMessages'
@@ -18,11 +44,13 @@ require_relative 'endpoints/dnd'
18
44
  require_relative 'endpoints/emoji'
19
45
  require_relative 'endpoints/files'
20
46
  require_relative 'endpoints/files_comments'
47
+ require_relative 'endpoints/files_remote'
21
48
  require_relative 'endpoints/groups'
22
49
  require_relative 'endpoints/im'
23
50
  require_relative 'endpoints/migration'
24
51
  require_relative 'endpoints/mpim'
25
52
  require_relative 'endpoints/oauth'
53
+ require_relative 'endpoints/oauth_v2'
26
54
  require_relative 'endpoints/pins'
27
55
  require_relative 'endpoints/reactions'
28
56
  require_relative 'endpoints/reminders'
@@ -37,24 +65,52 @@ require_relative 'endpoints/users'
37
65
  require_relative 'endpoints/users_admin'
38
66
  require_relative 'endpoints/users_prefs'
39
67
  require_relative 'endpoints/users_profile'
68
+ require_relative 'endpoints/views'
69
+ require_relative 'endpoints/workflows'
40
70
 
41
71
  module Slack
42
72
  module Web
43
73
  module Api
44
74
  module Endpoints
75
+ include Slack::Web::Api::Mixins::Conversations
45
76
  include Slack::Web::Api::Mixins::Channels
46
77
  include Slack::Web::Api::Mixins::Users
47
78
  include Slack::Web::Api::Mixins::Groups
48
79
 
80
+ include AdminAnalytics
81
+ include AdminApps
82
+ include AdminAppsApproved
83
+ include AdminAppsRequests
84
+ include AdminAppsRestricted
85
+ include AdminBarriers
86
+ include AdminConversations
87
+ include AdminConversationsEkm
88
+ include AdminConversationsRestrictaccess
89
+ include AdminConversationsWhitelist
90
+ include AdminEmoji
91
+ include AdminInviterequests
92
+ include AdminInviterequestsApproved
93
+ include AdminInviterequestsDenied
94
+ include AdminTeams
95
+ include AdminTeamsAdmins
96
+ include AdminTeamsOwners
97
+ include AdminTeamsSettings
98
+ include AdminUsergroups
99
+ include AdminUsers
49
100
  include AdminUsersSession
50
101
  include Api
51
102
  include Apps
103
+ include AppsConnections
104
+ include AppsEventAuthorizations
52
105
  include AppsPermissions
53
106
  include AppsPermissionsResources
54
107
  include AppsPermissionsScopes
55
108
  include AppsPermissionsUsers
56
109
  include Auth
110
+ include AuthTeams
57
111
  include Bots
112
+ include Calls
113
+ include CallsParticipants
58
114
  include Channels
59
115
  include Chat
60
116
  include ChatScheduledmessages
@@ -64,11 +120,13 @@ module Slack
64
120
  include Emoji
65
121
  include Files
66
122
  include FilesComments
123
+ include FilesRemote
67
124
  include Groups
68
125
  include Im
69
126
  include Migration
70
127
  include Mpim
71
128
  include Oauth
129
+ include OauthV2
72
130
  include Pins
73
131
  include Reactions
74
132
  include Reminders
@@ -83,6 +141,8 @@ module Slack
83
141
  include UsersAdmin
84
142
  include UsersPrefs
85
143
  include UsersProfile
144
+ include Views
145
+ include Workflows
86
146
  end
87
147
  end
88
148
  end
@@ -0,0 +1,26 @@
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 AdminAnalytics
9
+ #
10
+ # Retrieve analytics data for a given date, presented as a compressed JSON file
11
+ #
12
+ # @option options [Object] :type
13
+ # The type of analytics to retrieve. The options are currently limited to member.
14
+ # @option options [Object] :date
15
+ # Date to retrieve the analytics data for, expressed as YYYY-MM-DD in UTC.
16
+ # @see https://api.slack.com/methods/admin.analytics.getFile
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.analytics/admin.analytics.getFile.json
18
+ def admin_analytics_getFile(options = {})
19
+ throw ArgumentError.new('Required arguments :type missing') if options[:type].nil?
20
+ post('admin.analytics.getFile', options)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,62 @@
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 AdminApps
9
+ #
10
+ # Approve an app for installation on a workspace.
11
+ #
12
+ # @option options [Object] :app_id
13
+ # The id of the app to approve.
14
+ # @option options [Object] :enterprise_id
15
+ # The ID of the enterprise to approve the app on.
16
+ # @option options [Object] :request_id
17
+ # The id of the request to approve.
18
+ # @option options [Object] :team_id
19
+ # The ID of the workspace to approve the app on.
20
+ # @see https://api.slack.com/methods/admin.apps.approve
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.approve.json
22
+ def admin_apps_approve(options = {})
23
+ post('admin.apps.approve', options)
24
+ end
25
+
26
+ #
27
+ # Clear an app resolution
28
+ #
29
+ # @option options [Object] :app_id
30
+ # The id of the app whose resolution you want to clear/undo.
31
+ # @option options [Object] :enterprise_id
32
+ # The enterprise to clear the app resolution from.
33
+ # @option options [Object] :team_id
34
+ # The workspace to clear the app resolution from.
35
+ # @see https://api.slack.com/methods/admin.apps.clearResolution
36
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.clearResolution.json
37
+ def admin_apps_clearResolution(options = {})
38
+ throw ArgumentError.new('Required arguments :app_id missing') if options[:app_id].nil?
39
+ post('admin.apps.clearResolution', options)
40
+ end
41
+
42
+ #
43
+ # Restrict an app for installation on a workspace.
44
+ #
45
+ # @option options [Object] :app_id
46
+ # The id of the app to restrict.
47
+ # @option options [Object] :enterprise_id
48
+ # The ID of the enterprise to approve the app on.
49
+ # @option options [Object] :request_id
50
+ # The id of the request to restrict.
51
+ # @option options [Object] :team_id
52
+ # The ID of the workspace to approve the app on.
53
+ # @see https://api.slack.com/methods/admin.apps.restrict
54
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.restrict.json
55
+ def admin_apps_restrict(options = {})
56
+ post('admin.apps.restrict', options)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,35 @@
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 AdminAppsApproved
9
+ #
10
+ # List approved apps for an org or workspace.
11
+ #
12
+ # @option options [Object] :cursor
13
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
14
+ # @option options [Object] :enterprise_id
15
+ # .
16
+ # @option options [Object] :limit
17
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
18
+ # @option options [Object] :team_id
19
+ # .
20
+ # @see https://api.slack.com/methods/admin.apps.approved.list
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.approved/admin.apps.approved.list.json
22
+ def admin_apps_approved_list(options = {})
23
+ if block_given?
24
+ Pagination::Cursor.new(self, :admin_apps_approved_list, options).each do |page|
25
+ yield page
26
+ end
27
+ else
28
+ post('admin.apps.approved.list', options)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,33 @@
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 AdminAppsRequests
9
+ #
10
+ # List app requests for a team/workspace.
11
+ #
12
+ # @option options [Object] :cursor
13
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
14
+ # @option options [Object] :limit
15
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
16
+ # @option options [Object] :team_id
17
+ # .
18
+ # @see https://api.slack.com/methods/admin.apps.requests.list
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.requests/admin.apps.requests.list.json
20
+ def admin_apps_requests_list(options = {})
21
+ if block_given?
22
+ Pagination::Cursor.new(self, :admin_apps_requests_list, options).each do |page|
23
+ yield page
24
+ end
25
+ else
26
+ post('admin.apps.requests.list', options)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,35 @@
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 AdminAppsRestricted
9
+ #
10
+ # List restricted apps for an org or workspace.
11
+ #
12
+ # @option options [Object] :cursor
13
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
14
+ # @option options [Object] :enterprise_id
15
+ # .
16
+ # @option options [Object] :limit
17
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
18
+ # @option options [Object] :team_id
19
+ # .
20
+ # @see https://api.slack.com/methods/admin.apps.restricted.list
21
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.restricted/admin.apps.restricted.list.json
22
+ def admin_apps_restricted_list(options = {})
23
+ if block_given?
24
+ Pagination::Cursor.new(self, :admin_apps_restricted_list, options).each do |page|
25
+ yield page
26
+ end
27
+ else
28
+ post('admin.apps.restricted.list', options)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,82 @@
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 AdminBarriers
9
+ #
10
+ # Create an Information Barrier
11
+ #
12
+ # @option options [Object] :barriered_from_usergroup_ids
13
+ # A list of IDP Groups ids that the primary usergroup is to be barriered from.
14
+ # @option options [Object] :primary_usergroup_id
15
+ # The id of the primary IDP Group.
16
+ # @option options [Object] :restricted_subjects
17
+ # What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
18
+ # @see https://api.slack.com/methods/admin.barriers.create
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.create.json
20
+ def admin_barriers_create(options = {})
21
+ throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
22
+ throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
23
+ throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
24
+ post('admin.barriers.create', options)
25
+ end
26
+
27
+ #
28
+ # Delete an existing Information Barrier
29
+ #
30
+ # @option options [Object] :barrier_id
31
+ # The ID of the barrier you're trying to delete.
32
+ # @see https://api.slack.com/methods/admin.barriers.delete
33
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.delete.json
34
+ def admin_barriers_delete(options = {})
35
+ throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
36
+ post('admin.barriers.delete', options)
37
+ end
38
+
39
+ #
40
+ # Get all Information Barriers for your organization
41
+ #
42
+ # @option options [Object] :cursor
43
+ # Set cursor to next_cursor returned by the previous call to list items in the next page.
44
+ # @option options [Object] :limit
45
+ # The maximum number of items to return. Must be between 1 - 1000 both inclusive.
46
+ # @see https://api.slack.com/methods/admin.barriers.list
47
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.list.json
48
+ def admin_barriers_list(options = {})
49
+ if block_given?
50
+ Pagination::Cursor.new(self, :admin_barriers_list, options).each do |page|
51
+ yield page
52
+ end
53
+ else
54
+ post('admin.barriers.list', options)
55
+ end
56
+ end
57
+
58
+ #
59
+ # Update an existing Information Barrier
60
+ #
61
+ # @option options [Object] :barrier_id
62
+ # The ID of the barrier you're trying to modify.
63
+ # @option options [Object] :barriered_from_usergroup_ids
64
+ # A list of IDP Groups ids that the primary usergroup is to be barriered from.
65
+ # @option options [Object] :primary_usergroup_id
66
+ # The id of the primary IDP Group.
67
+ # @option options [Object] :restricted_subjects
68
+ # What kind of interactions are blocked by this barrier? For v1, we only support a list of all 3, eg im, mpim, call.
69
+ # @see https://api.slack.com/methods/admin.barriers.update
70
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.barriers/admin.barriers.update.json
71
+ def admin_barriers_update(options = {})
72
+ throw ArgumentError.new('Required arguments :barrier_id missing') if options[:barrier_id].nil?
73
+ throw ArgumentError.new('Required arguments :barriered_from_usergroup_ids missing') if options[:barriered_from_usergroup_ids].nil?
74
+ throw ArgumentError.new('Required arguments :primary_usergroup_id missing') if options[:primary_usergroup_id].nil?
75
+ throw ArgumentError.new('Required arguments :restricted_subjects missing') if options[:restricted_subjects].nil?
76
+ post('admin.barriers.update', options)
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end