slack-ruby-client 0.12.0 → 0.14.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +21 -9
  4. data/.rubocop_todo.yml +64 -56
  5. data/.travis.yml +5 -3
  6. data/CHANGELOG.md +90 -32
  7. data/Dangerfile +2 -0
  8. data/Gemfile +10 -4
  9. data/LICENSE.md +1 -1
  10. data/README.md +176 -32
  11. data/Rakefile +2 -1
  12. data/UPGRADING.md +27 -1
  13. data/bin/commands.rb +21 -0
  14. data/bin/commands/admin_apps.rb +27 -0
  15. data/bin/commands/admin_apps_approved.rb +17 -0
  16. data/bin/commands/admin_apps_requests.rb +16 -0
  17. data/bin/commands/admin_apps_restricted.rb +17 -0
  18. data/bin/commands/admin_conversations.rb +17 -0
  19. data/bin/commands/admin_emoji.rb +54 -0
  20. data/bin/commands/admin_inviteRequests.rb +36 -0
  21. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  22. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  23. data/bin/commands/admin_teams.rb +27 -0
  24. data/bin/commands/admin_teams_admins.rb +16 -0
  25. data/bin/commands/admin_teams_owners.rb +16 -0
  26. data/bin/commands/admin_teams_settings.rb +64 -0
  27. data/bin/commands/admin_users.rb +97 -0
  28. data/bin/commands/admin_users_session.rb +16 -0
  29. data/bin/commands/api.rb +1 -0
  30. data/bin/commands/apps.rb +15 -0
  31. data/bin/commands/apps_permissions.rb +1 -0
  32. data/bin/commands/apps_permissions_resources.rb +1 -0
  33. data/bin/commands/apps_permissions_scopes.rb +1 -0
  34. data/bin/commands/apps_permissions_users.rb +1 -0
  35. data/bin/commands/auth.rb +1 -0
  36. data/bin/commands/bots.rb +1 -0
  37. data/bin/commands/channels.rb +3 -1
  38. data/bin/commands/chat.rb +48 -9
  39. data/bin/commands/chat_scheduledMessages.rb +18 -0
  40. data/bin/commands/conversations.rb +4 -2
  41. data/bin/commands/dialog.rb +1 -0
  42. data/bin/commands/dnd.rb +4 -3
  43. data/bin/commands/emoji.rb +1 -0
  44. data/bin/commands/files.rb +4 -14
  45. data/bin/commands/files_comments.rb +1 -21
  46. data/bin/commands/files_remote.rb +78 -0
  47. data/bin/commands/groups.rb +2 -1
  48. data/bin/commands/im.rb +2 -1
  49. data/bin/commands/migration.rb +1 -0
  50. data/bin/commands/mpim.rb +2 -1
  51. data/bin/commands/oauth.rb +2 -1
  52. data/bin/commands/oauth_v2.rb +17 -0
  53. data/bin/commands/pins.rb +1 -2
  54. data/bin/commands/reactions.rb +2 -3
  55. data/bin/commands/reminders.rb +1 -0
  56. data/bin/commands/rtm.rb +1 -0
  57. data/bin/commands/search.rb +2 -1
  58. data/bin/commands/stars.rb +1 -0
  59. data/bin/commands/team.rb +2 -0
  60. data/bin/commands/team_profile.rb +1 -0
  61. data/bin/commands/usergroups.rb +2 -1
  62. data/bin/commands/usergroups_users.rb +1 -0
  63. data/bin/commands/users.rb +2 -2
  64. data/bin/commands/users_admin.rb +1 -0
  65. data/bin/commands/users_prefs.rb +1 -0
  66. data/bin/commands/users_profile.rb +1 -0
  67. data/bin/commands/views.rb +48 -0
  68. data/bin/slack +2 -3
  69. data/examples/hi_real_time/Gemfile +1 -0
  70. data/examples/hi_real_time/hi.rb +7 -3
  71. data/examples/hi_real_time_and_web/Gemfile +1 -0
  72. data/examples/hi_real_time_and_web/hi.rb +7 -3
  73. data/examples/hi_real_time_async_async/Gemfile +7 -0
  74. data/examples/hi_real_time_async_async/Procfile +2 -0
  75. data/examples/hi_real_time_async_async/hi.rb +41 -0
  76. data/examples/hi_real_time_async_celluloid/Gemfile +1 -0
  77. data/examples/hi_real_time_async_celluloid/hi.rb +7 -3
  78. data/examples/hi_real_time_async_eventmachine/Gemfile +1 -0
  79. data/examples/hi_real_time_async_eventmachine/hi.rb +7 -3
  80. data/examples/hi_web/Gemfile +1 -0
  81. data/examples/hi_web/hi.rb +1 -0
  82. data/examples/new_ticket/Gemfile +1 -0
  83. data/examples/new_ticket/new_ticket.rb +1 -0
  84. data/lib/slack-ruby-client.rb +8 -2
  85. data/lib/slack.rb +1 -0
  86. data/lib/slack/config.rb +1 -0
  87. data/lib/slack/events/config.rb +32 -0
  88. data/lib/slack/events/request.rb +66 -0
  89. data/lib/slack/logger.rb +6 -5
  90. data/lib/slack/messages/formatting.rb +1 -0
  91. data/lib/slack/messages/message.rb +1 -0
  92. data/lib/slack/real_time/api/message.rb +3 -1
  93. data/lib/slack/real_time/api/message_id.rb +1 -0
  94. data/lib/slack/real_time/api/ping.rb +5 -2
  95. data/lib/slack/real_time/api/typing.rb +3 -1
  96. data/lib/slack/real_time/client.rb +97 -28
  97. data/lib/slack/real_time/concurrency.rb +2 -0
  98. data/lib/slack/real_time/concurrency/async.rb +142 -0
  99. data/lib/slack/real_time/concurrency/celluloid.rb +33 -9
  100. data/lib/slack/real_time/concurrency/eventmachine.rb +32 -7
  101. data/lib/slack/real_time/config.rb +7 -2
  102. data/lib/slack/real_time/models.rb +1 -0
  103. data/lib/slack/real_time/models/base.rb +1 -0
  104. data/lib/slack/real_time/models/bot.rb +1 -0
  105. data/lib/slack/real_time/models/channel.rb +1 -0
  106. data/lib/slack/real_time/models/group.rb +1 -0
  107. data/lib/slack/real_time/models/im.rb +1 -0
  108. data/lib/slack/real_time/models/team.rb +1 -0
  109. data/lib/slack/real_time/models/user.rb +1 -0
  110. data/lib/slack/real_time/socket.rb +42 -13
  111. data/lib/slack/real_time/stores.rb +1 -0
  112. data/lib/slack/real_time/stores/base.rb +1 -0
  113. data/lib/slack/real_time/stores/starter.rb +11 -0
  114. data/lib/slack/real_time/stores/store.rb +28 -25
  115. data/lib/slack/version.rb +2 -1
  116. data/lib/slack/web/api/endpoints.rb +41 -0
  117. data/lib/slack/web/api/endpoints/admin_apps.rb +42 -0
  118. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  119. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  120. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  121. data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -0
  122. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  123. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  124. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  125. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  126. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  127. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  128. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  129. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  130. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  131. data/lib/slack/web/api/endpoints/admin_users_session.rb +28 -0
  132. data/lib/slack/web/api/endpoints/api.rb +1 -0
  133. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  134. data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
  135. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +1 -0
  136. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +1 -0
  137. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +1 -0
  138. data/lib/slack/web/api/endpoints/auth.rb +1 -0
  139. data/lib/slack/web/api/endpoints/bots.rb +1 -0
  140. data/lib/slack/web/api/endpoints/channels.rb +3 -0
  141. data/lib/slack/web/api/endpoints/chat.rb +99 -12
  142. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +38 -0
  143. data/lib/slack/web/api/endpoints/conversations.rb +4 -1
  144. data/lib/slack/web/api/endpoints/dialog.rb +1 -0
  145. data/lib/slack/web/api/endpoints/dnd.rb +3 -1
  146. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  147. data/lib/slack/web/api/endpoints/files.rb +4 -13
  148. data/lib/slack/web/api/endpoints/files_comments.rb +1 -33
  149. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  150. data/lib/slack/web/api/endpoints/groups.rb +1 -0
  151. data/lib/slack/web/api/endpoints/im.rb +1 -0
  152. data/lib/slack/web/api/endpoints/migration.rb +1 -0
  153. data/lib/slack/web/api/endpoints/mpim.rb +1 -0
  154. data/lib/slack/web/api/endpoints/oauth.rb +2 -1
  155. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  156. data/lib/slack/web/api/endpoints/pins.rb +2 -4
  157. data/lib/slack/web/api/endpoints/reactions.rb +5 -6
  158. data/lib/slack/web/api/endpoints/reminders.rb +1 -0
  159. data/lib/slack/web/api/endpoints/rtm.rb +1 -0
  160. data/lib/slack/web/api/endpoints/search.rb +1 -0
  161. data/lib/slack/web/api/endpoints/stars.rb +1 -0
  162. data/lib/slack/web/api/endpoints/team.rb +3 -0
  163. data/lib/slack/web/api/endpoints/team_profile.rb +1 -0
  164. data/lib/slack/web/api/endpoints/usergroups.rb +1 -0
  165. data/lib/slack/web/api/endpoints/usergroups_users.rb +1 -0
  166. data/lib/slack/web/api/endpoints/users.rb +1 -2
  167. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  168. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  169. data/lib/slack/web/api/endpoints/users_profile.rb +1 -0
  170. data/lib/slack/web/api/endpoints/views.rb +97 -0
  171. data/lib/slack/web/api/error.rb +1 -0
  172. data/lib/slack/web/api/errors.rb +566 -0
  173. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  174. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  175. data/lib/slack/web/api/mixins.rb +1 -0
  176. data/lib/slack/web/api/mixins/channels.id.rb +1 -0
  177. data/lib/slack/web/api/mixins/groups.id.rb +1 -0
  178. data/lib/slack/web/api/mixins/ids.id.rb +4 -1
  179. data/lib/slack/web/api/mixins/users.id.rb +1 -0
  180. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  181. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +5 -3
  182. data/lib/slack/web/api/patches/chat.6.block-kit-support.patch +69 -0
  183. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  184. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  185. data/lib/slack/web/api/templates/command.erb +1 -0
  186. data/lib/slack/web/api/templates/commands.erb +1 -0
  187. data/lib/slack/web/api/templates/endpoints.erb +1 -0
  188. data/lib/slack/web/api/templates/errors.erb +20 -0
  189. data/lib/slack/web/api/templates/method.erb +1 -0
  190. data/lib/slack/web/api/templates/method_spec.erb +1 -0
  191. data/lib/slack/web/client.rb +2 -1
  192. data/lib/slack/web/config.rb +1 -0
  193. data/lib/slack/web/faraday/connection.rb +1 -0
  194. data/lib/slack/web/faraday/request.rb +1 -0
  195. data/lib/slack/web/faraday/response/raise_error.rb +10 -6
  196. data/lib/slack/web/pagination/cursor.rb +4 -0
  197. data/lib/slack_ruby_client.rb +1 -0
  198. data/lib/tasks/git.rake +1 -0
  199. data/lib/tasks/real_time.rake +15 -5
  200. data/lib/tasks/update.rake +1 -0
  201. data/lib/tasks/web.rake +28 -7
  202. data/screenshots/create-app.png +0 -0
  203. data/slack-ruby-client.gemspec +6 -2
  204. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  205. data/spec/integration/integration_spec.rb +116 -48
  206. data/spec/slack/config_spec.rb +2 -0
  207. data/spec/slack/events/config_spec.rb +33 -0
  208. data/spec/slack/events/request_spec.rb +179 -0
  209. data/spec/slack/messages/formatting_spec.rb +25 -13
  210. data/spec/slack/real_time/api/message_spec.rb +6 -1
  211. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  212. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  213. data/spec/slack/real_time/client_spec.rb +212 -31
  214. data/spec/slack/real_time/concurrency/celluloid_spec.rb +15 -5
  215. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +11 -1
  216. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  217. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  218. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  219. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  220. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  221. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  222. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  223. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  224. data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
  225. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  226. data/spec/slack/real_time/store_spec.rb +2 -1
  227. data/spec/slack/slack_spec.rb +37 -5
  228. data/spec/slack/version_spec.rb +2 -1
  229. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  230. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  231. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  232. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +8 -0
  233. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +13 -0
  234. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  235. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  236. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  237. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  238. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  239. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  240. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  241. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  242. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +13 -0
  243. data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
  244. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  245. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  246. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  247. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  248. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  249. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  250. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  251. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  252. data/spec/slack/web/api/endpoints/conversations_spec.rb +2 -1
  253. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  254. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +2 -0
  255. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +112 -36
  256. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  257. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  258. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  259. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  260. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  261. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  262. data/spec/slack/web/api/endpoints/files_comments_spec.rb +1 -19
  263. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  264. data/spec/slack/web/api/endpoints/files_spec.rb +1 -0
  265. data/spec/slack/web/api/endpoints/im_spec.rb +1 -0
  266. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  267. data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -0
  268. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -0
  269. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  270. data/spec/slack/web/api/endpoints/pins_spec.rb +5 -1
  271. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  272. data/spec/slack/web/api/endpoints/reminders_spec.rb +1 -0
  273. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  274. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  275. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  276. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  277. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  278. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  279. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +1 -0
  280. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  281. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  283. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  284. data/spec/slack/web/api/error_spec.rb +4 -2
  285. data/spec/slack/web/api/errors/service_unavailable_spec.rb +6 -3
  286. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  287. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  288. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  289. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  290. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  291. data/spec/slack/web/client_spec.rb +45 -18
  292. data/spec/slack/web/faraday/response/raise_error_spec.rb +41 -7
  293. data/spec/spec_helper.rb +8 -1
  294. data/spec/support/queue_with_timeout.rb +5 -4
  295. data/spec/support/real_time/concurrency/mock.rb +1 -0
  296. data/spec/support/real_time/connected_client.rb +9 -3
  297. data/spec/support/real_time/event.rb +1 -0
  298. data/spec/support/token.rb +1 -0
  299. data/spec/support/vcr.rb +1 -0
  300. metadata +149 -9
  301. data/screenshots/register-bot.png +0 -0
@@ -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 AdminUsersSession
9
+ #
10
+ # Wipes all valid sessions on all devices for a given user
11
+ #
12
+ # @option options [Object] :user_id
13
+ # The ID of the user to wipe sessions for.
14
+ # @option options [Object] :mobile_only
15
+ # Only expire mobile sessions (default: false).
16
+ # @option options [Object] :web_only
17
+ # Only expire web sessions (default: false).
18
+ # @see https://api.slack.com/methods/admin.users.session.reset
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.users.session/admin.users.session.reset.json
20
+ def admin_users_session_reset(options = {})
21
+ throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
22
+ post('admin.users.session.reset', 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
@@ -0,0 +1,27 @@
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 Apps
9
+ #
10
+ # Uninstalls your app from a workspace.
11
+ #
12
+ # @option options [Object] :client_id
13
+ # Issued when you created your application.
14
+ # @option options [Object] :client_secret
15
+ # Issued when you created your application.
16
+ # @see https://api.slack.com/methods/apps.uninstall
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps/apps.uninstall.json
18
+ def apps_uninstall(options = {})
19
+ throw ArgumentError.new('Required arguments :client_id missing') if options[:client_id].nil?
20
+ throw ArgumentError.new('Required arguments :client_secret missing') if options[:client_secret].nil?
21
+ post('apps.uninstall', options)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -222,6 +223,8 @@ module Slack
222
223
  # Channel to set the purpose of.
223
224
  # @option options [Object] :purpose
224
225
  # The new purpose.
226
+ # @option options [Object] :name_tagging
227
+ # if it is true, treat this like a message and not an unescaped thing.
225
228
  # @see https://api.slack.com/methods/channels.setPurpose
226
229
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.setPurpose.json
227
230
  def channels_setPurpose(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
@@ -41,6 +42,24 @@ module Slack
41
42
  post('chat.delete', options)
42
43
  end
43
44
 
45
+ #
46
+ # Deletes a pending scheduled message from the queue.
47
+ #
48
+ # @option options [channel] :channel
49
+ # The channel the scheduled_message is posting to.
50
+ # @option options [Object] :scheduled_message_id
51
+ # scheduled_message_id returned from call to chat.scheduleMessage.
52
+ # @option options [Object] :as_user
53
+ # Pass true to delete the message as the authed user with chat:write:user scope. Bot users in this context are considered authed users. If unused or false, the message will be deleted with chat:write:bot scope.
54
+ # @see https://api.slack.com/methods/chat.deleteScheduledMessage
55
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.deleteScheduledMessage.json
56
+ def chat_deleteScheduledMessage(options = {})
57
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
58
+ throw ArgumentError.new('Required arguments :scheduled_message_id missing') if options[:scheduled_message_id].nil?
59
+ options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
60
+ post('chat.deleteScheduledMessage', options)
61
+ end
62
+
44
63
  #
45
64
  # Retrieve a permalink URL for a specific extant message
46
65
  #
@@ -75,25 +94,35 @@ module Slack
75
94
  #
76
95
  # Sends an ephemeral message to a user in a channel.
77
96
  #
97
+ # @option options [Object] :attachments
98
+ # A JSON-based array of structured attachments, presented as a URL-encoded string.
78
99
  # @option options [channel] :channel
79
100
  # Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name.
80
101
  # @option options [Object] :text
81
- # Text of the message to send. See below for an explanation of formatting. This field is usually required, unless you're providing only attachments instead.
102
+ # How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
82
103
  # @option options [user] :user
83
104
  # id of the user who will receive the ephemeral message. The user should be in the channel specified by the channel argument.
84
105
  # @option options [Object] :as_user
85
- # Pass true to post the message as the authed bot. Defaults to false.
86
- # @option options [Object] :attachments
87
- # A JSON-based array of structured attachments, presented as a URL-encoded string.
106
+ # Pass true to post the message as the authed user. Defaults to true if the chat:write:bot scope is not included. Otherwise, defaults to false.
107
+ # @option options [Object] :blocks
108
+ # A JSON-based array of structured blocks, presented as a URL-encoded string.
109
+ # @option options [Object] :icon_emoji
110
+ # Emoji to use as the icon for this message. Overrides icon_url. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.
111
+ # @option options [Object] :icon_url
112
+ # URL to an image to use as the icon for this message. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.
88
113
  # @option options [Object] :link_names
89
114
  # Find and link channel names and usernames.
90
115
  # @option options [Object] :parse
91
116
  # Change how messages are treated. Defaults to none. See below.
117
+ # @option options [Object] :thread_ts
118
+ # Provide another message's ts value to post this message in a thread. Avoid using a reply's ts value; use its parent's value instead. Ephemeral messages in threads are only shown if there is already an active thread.
119
+ # @option options [Object] :username
120
+ # Set your bot's user name. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.
92
121
  # @see https://api.slack.com/methods/chat.postEphemeral
93
122
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postEphemeral.json
94
123
  def chat_postEphemeral(options = {})
95
124
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
96
- throw ArgumentError.new('Required arguments :text or :attachments missing') if options[:text].nil? && options[:attachments].nil?
125
+ throw ArgumentError.new('Required arguments :text, :attachments or :blocks missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
97
126
  throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
98
127
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
99
128
  # attachments must be passed as an encoded JSON string
@@ -102,6 +131,12 @@ module Slack
102
131
  attachments = JSON.dump(attachments) unless attachments.is_a?(String)
103
132
  options = options.merge(attachments: attachments)
104
133
  end
134
+ # blocks must be passed as an encoded JSON string
135
+ if options.key?(:blocks)
136
+ blocks = options[:blocks]
137
+ blocks = JSON.dump(blocks) unless blocks.is_a?(String)
138
+ options = options.merge(blocks: blocks)
139
+ end
105
140
  post('chat.postEphemeral', options)
106
141
  end
107
142
 
@@ -111,15 +146,17 @@ module Slack
111
146
  # @option options [channel] :channel
112
147
  # Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See below for more details.
113
148
  # @option options [Object] :text
114
- # Text of the message to send. See below for an explanation of formatting. This field is usually required, unless you're providing only attachments instead. Provide no more than 40,000 characters or risk truncation.
149
+ # How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
115
150
  # @option options [Object] :as_user
116
- # Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See authorship below.
151
+ # Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See authorship below. This argument may not be used with newer bot tokens.
117
152
  # @option options [Object] :attachments
118
153
  # A JSON-based array of structured attachments, presented as a URL-encoded string.
154
+ # @option options [Object] :blocks
155
+ # A JSON-based array of structured blocks, presented as a URL-encoded string.
119
156
  # @option options [Object] :icon_emoji
120
- # Emoji to use as the icon for this message. Overrides icon_url. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.
157
+ # Emoji to use as the icon for this message. Overrides icon_url. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below. This argument may not be used with newer bot tokens.
121
158
  # @option options [Object] :icon_url
122
- # URL to an image to use as the icon for this message. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below.
159
+ # URL to an image to use as the icon for this message. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below. This argument may not be used with newer bot tokens.
123
160
  # @option options [Object] :link_names
124
161
  # Find and link channel names and usernames.
125
162
  # @option options [Object] :mrkdwn
@@ -140,16 +177,58 @@ module Slack
140
177
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postMessage.json
141
178
  def chat_postMessage(options = {})
142
179
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
143
- throw ArgumentError.new('Required arguments :text or :attachments missing') if options[:text].nil? && options[:attachments].nil?
180
+ throw ArgumentError.new('Required arguments :text, :attachments or :blocks missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
144
181
  # attachments must be passed as an encoded JSON string
145
182
  if options.key?(:attachments)
146
183
  attachments = options[:attachments]
147
184
  attachments = JSON.dump(attachments) unless attachments.is_a?(String)
148
185
  options = options.merge(attachments: attachments)
149
186
  end
187
+ # blocks must be passed as an encoded JSON string
188
+ if options.key?(:blocks)
189
+ blocks = options[:blocks]
190
+ blocks = JSON.dump(blocks) unless blocks.is_a?(String)
191
+ options = options.merge(blocks: blocks)
192
+ end
150
193
  post('chat.postMessage', options)
151
194
  end
152
195
 
196
+ #
197
+ # Schedules a message to be sent to a channel.
198
+ #
199
+ # @option options [channel] :channel
200
+ # Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name. See below for more details.
201
+ # @option options [Object] :post_at
202
+ # Unix EPOCH timestamp of time in future to send the message.
203
+ # @option options [Object] :text
204
+ # How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
205
+ # @option options [Object] :as_user
206
+ # Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See chat.postMessage.
207
+ # @option options [Object] :attachments
208
+ # A JSON-based array of structured attachments, presented as a URL-encoded string.
209
+ # @option options [Object] :blocks
210
+ # A JSON-based array of structured blocks, presented as a URL-encoded string.
211
+ # @option options [Object] :link_names
212
+ # Find and link channel names and usernames.
213
+ # @option options [Object] :parse
214
+ # Change how messages are treated. Defaults to none. See chat.postMessage.
215
+ # @option options [Object] :reply_broadcast
216
+ # Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.
217
+ # @option options [Object] :thread_ts
218
+ # Provide another message's ts value to make this message a reply. Avoid using a reply's ts value; use its parent instead.
219
+ # @option options [Object] :unfurl_links
220
+ # Pass true to enable unfurling of primarily text-based content.
221
+ # @option options [Object] :unfurl_media
222
+ # Pass false to disable unfurling of media content.
223
+ # @see https://api.slack.com/methods/chat.scheduleMessage
224
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.scheduleMessage.json
225
+ def chat_scheduleMessage(options = {})
226
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
227
+ throw ArgumentError.new('Required arguments :post_at missing') if options[:post_at].nil?
228
+ throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
229
+ post('chat.scheduleMessage', options)
230
+ end
231
+
153
232
  #
154
233
  # Provide custom unfurl behavior for user-posted URLs
155
234
  #
@@ -158,7 +237,7 @@ module Slack
158
237
  # @option options [timestamp] :ts
159
238
  # Timestamp of the message to add unfurl behavior to.
160
239
  # @option options [Object] :unfurls
161
- # URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl message attachments.
240
+ # URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments.
162
241
  # @option options [Object] :user_auth_message
163
242
  # Provide a simply-formatted string to send as an ephemeral message to the user as invitation to authenticate further and enable full unfurling behavior.
164
243
  # @option options [Object] :user_auth_required
@@ -188,6 +267,8 @@ module Slack
188
267
  # Pass true to update the message as the authed user. Bot users in this context are considered authed users.
189
268
  # @option options [Object] :attachments
190
269
  # A JSON-based array of structured attachments, presented as a URL-encoded string. This field is required when not presenting text.
270
+ # @option options [Object] :blocks
271
+ # A JSON-based array of structured blocks, presented as a URL-encoded string.
191
272
  # @option options [Object] :link_names
192
273
  # Find and link channel names and usernames. Defaults to none. See below.
193
274
  # @option options [Object] :parse
@@ -196,7 +277,7 @@ module Slack
196
277
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.update.json
197
278
  def chat_update(options = {})
198
279
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
199
- throw ArgumentError.new('Required arguments :text or :attachments missing') if options[:text].nil? && options[:attachments].nil?
280
+ throw ArgumentError.new('Required arguments :text, :attachments or :blocks missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
200
281
  throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
201
282
  options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
202
283
  # attachments must be passed as an encoded JSON string
@@ -205,6 +286,12 @@ module Slack
205
286
  attachments = JSON.dump(attachments) unless attachments.is_a?(String)
206
287
  options = options.merge(attachments: attachments)
207
288
  end
289
+ # blocks must be passed as an encoded JSON string
290
+ if options.key?(:blocks)
291
+ blocks = options[:blocks]
292
+ blocks = JSON.dump(blocks) unless blocks.is_a?(String)
293
+ options = options.merge(blocks: blocks)
294
+ end
208
295
  post('chat.update', options)
209
296
  end
210
297
  end
@@ -0,0 +1,38 @@
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 ChatScheduledmessages
9
+ #
10
+ # Returns a list of scheduled messages.
11
+ #
12
+ # @option options [channel] :channel
13
+ # The channel of the scheduled messages.
14
+ # @option options [Object] :cursor
15
+ # For pagination purposes, this is the cursor value returned from a previous call to chat.scheduledmessages.list indicating where you want to start this call from.
16
+ # @option options [timestamp] :latest
17
+ # A UNIX timestamp of the latest value in the time range.
18
+ # @option options [Object] :limit
19
+ # Maximum number of original entries to return.
20
+ # @option options [timestamp] :oldest
21
+ # A UNIX timestamp of the oldest value in the time range.
22
+ # @see https://api.slack.com/methods/chat.scheduledMessages.list
23
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat.scheduledMessages/chat.scheduledMessages.list.json
24
+ def chat_scheduledMessages_list(options = {})
25
+ options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
26
+ if block_given?
27
+ Pagination::Cursor.new(self, :chat_scheduledMessages_list, options).each do |page|
28
+ yield page
29
+ end
30
+ else
31
+ post('chat.scheduledMessages.list', options)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ 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
@@ -83,6 +84,8 @@ module Slack
83
84
  # Conversation ID to learn more about.
84
85
  # @option options [Object] :include_locale
85
86
  # Set this to true to receive the locale for this conversation. Defaults to false.
87
+ # @option options [Object] :include_num_members
88
+ # Set to true to include the member count for the specified conversation. Defaults to false.
86
89
  # @see https://api.slack.com/methods/conversations.info
87
90
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.info.json
88
91
  def conversations_info(options = {})
@@ -97,7 +100,7 @@ module Slack
97
100
  # @option options [channel] :channel
98
101
  # The ID of the public or private channel to invite user(s) to.
99
102
  # @option options [Object] :users
100
- # A comma separated list of user IDs. Up to 30 users may be listed.
103
+ # A comma separated list of user IDs. Up to 1000 users may be listed.
101
104
  # @see https://api.slack.com/methods/conversations.invite
102
105
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.invite.json
103
106
  def conversations_invite(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
@@ -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
@@ -48,13 +49,14 @@ module Slack
48
49
  end
49
50
 
50
51
  #
51
- # Retrieves the Do Not Disturb status for users on a team.
52
+ # Retrieves the Do Not Disturb status for up to 50 users on a team.
52
53
  #
53
54
  # @option options [Object] :users
54
55
  # Comma-separated list of users to fetch Do Not Disturb status for.
55
56
  # @see https://api.slack.com/methods/dnd.teamInfo
56
57
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/dnd/dnd.teamInfo.json
57
58
  def dnd_teamInfo(options = {})
59
+ throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
58
60
  post('dnd.teamInfo', options)
59
61
  end
60
62
  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
@@ -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
@@ -61,24 +62,14 @@ module Slack
61
62
  #
62
63
  # @option options [channel] :channel
63
64
  # Filter files appearing in a specific channel, indicated by its ID.
65
+ # @option options [Object] :show_files_hidden_by_limit
66
+ # Show truncated file info for files hidden due to being too old, and the team who owns the file being over the file limit.
64
67
  # @option options [Object] :ts_from
65
68
  # Filter files created after this timestamp (inclusive).
66
69
  # @option options [Object] :ts_to
67
70
  # Filter files created before this timestamp (inclusive).
68
71
  # @option options [Object] :types
69
- # Filter files by type:
70
- #
71
- # all - All files
72
- # spaces - Posts
73
- # snippets - Snippets
74
- # images - Image files
75
- # gdocs - Google docs
76
- # zips - Zip files
77
- # pdfs - PDF files
78
- #
79
- #
80
- # You can pass multiple values in the types argument, like types=spaces,snippets.The default value is all, which does not filter the list.
81
- # .
72
+ # Filter files by type (see below). You can pass multiple values in the types argument, like types=spaces,snippets.The default value is all, which does not filter the list.
82
73
  # @option options [user] :user
83
74
  # Filter files created by a single user.
84
75
  # @see https://api.slack.com/methods/files.list
@@ -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,21 +6,6 @@ module Slack
5
6
  module Api
6
7
  module Endpoints
7
8
  module FilesComments
8
- #
9
- # Add a comment to an existing file.
10
- #
11
- # @option options [Object] :comment
12
- # Text of the comment to add.
13
- # @option options [file] :file
14
- # File to add a comment to.
15
- # @see https://api.slack.com/methods/files.comments.add
16
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.comments/files.comments.add.json
17
- def files_comments_add(options = {})
18
- throw ArgumentError.new('Required arguments :comment missing') if options[:comment].nil?
19
- throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
20
- post('files.comments.add', options)
21
- end
22
-
23
9
  #
24
10
  # Deletes an existing comment on a file.
25
11
  #
@@ -34,24 +20,6 @@ module Slack
34
20
  throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
35
21
  post('files.comments.delete', options)
36
22
  end
37
-
38
- #
39
- # Edit an existing file comment.
40
- #
41
- # @option options [Object] :comment
42
- # Text of the comment to edit.
43
- # @option options [file] :file
44
- # File containing the comment to edit.
45
- # @option options [Object] :id
46
- # The comment to edit.
47
- # @see https://api.slack.com/methods/files.comments.edit
48
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/files.comments/files.comments.edit.json
49
- def files_comments_edit(options = {})
50
- throw ArgumentError.new('Required arguments :comment missing') if options[:comment].nil?
51
- throw ArgumentError.new('Required arguments :file missing') if options[:file].nil?
52
- throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
53
- post('files.comments.edit', options)
54
- end
55
23
  end
56
24
  end
57
25
  end