slack-ruby-client 0.14.5 → 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 (231) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +11 -3
  4. data/.rubocop_todo.yml +61 -23
  5. data/.travis.yml +1 -5
  6. data/CHANGELOG.md +43 -4
  7. data/CONTRIBUTING.md +17 -6
  8. data/Dangerfile +1 -1
  9. data/Gemfile +1 -2
  10. data/LICENSE.md +1 -1
  11. data/README.md +86 -52
  12. data/UPGRADING.md +20 -2
  13. data/bin/commands.rb +23 -0
  14. data/bin/commands/admin_analytics.rb +16 -0
  15. data/bin/commands/admin_apps.rb +15 -2
  16. data/bin/commands/admin_apps_approved.rb +17 -0
  17. data/bin/commands/admin_apps_restricted.rb +17 -0
  18. data/bin/commands/admin_barriers.rb +47 -0
  19. data/bin/commands/admin_conversations.rb +159 -0
  20. data/bin/commands/admin_conversations_ekm.rb +17 -0
  21. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  22. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  23. data/bin/commands/admin_emoji.rb +54 -0
  24. data/bin/commands/admin_inviteRequests.rb +36 -0
  25. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  26. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  27. data/bin/commands/admin_teams.rb +27 -0
  28. data/bin/commands/admin_teams_admins.rb +16 -0
  29. data/bin/commands/admin_teams_owners.rb +16 -0
  30. data/bin/commands/admin_teams_settings.rb +64 -0
  31. data/bin/commands/admin_usergroups.rb +48 -0
  32. data/bin/commands/admin_users.rb +97 -0
  33. data/bin/commands/admin_users_session.rb +22 -0
  34. data/bin/commands/api.rb +0 -1
  35. data/bin/commands/apps_connections.rb +13 -0
  36. data/bin/commands/apps_event_authorizations.rb +16 -0
  37. data/bin/commands/auth_teams.rb +16 -0
  38. data/bin/commands/bots.rb +1 -0
  39. data/bin/commands/calls.rb +52 -0
  40. data/bin/commands/calls_participants.rb +25 -0
  41. data/bin/commands/channels.rb +1 -155
  42. data/bin/commands/chat.rb +14 -12
  43. data/bin/commands/chat_scheduledMessages.rb +1 -0
  44. data/bin/commands/conversations.rb +15 -4
  45. data/bin/commands/dnd.rb +3 -1
  46. data/bin/commands/files.rb +7 -5
  47. data/bin/commands/files_remote.rb +3 -3
  48. data/bin/commands/groups.rb +1 -162
  49. data/bin/commands/im.rb +1 -63
  50. data/bin/commands/migration.rb +1 -0
  51. data/bin/commands/mpim.rb +1 -61
  52. data/bin/commands/oauth.rb +1 -1
  53. data/bin/commands/pins.rb +0 -2
  54. data/bin/commands/reactions.rb +1 -0
  55. data/bin/commands/search.rb +4 -1
  56. data/bin/commands/team.rb +3 -0
  57. data/bin/commands/usergroups.rb +6 -1
  58. data/bin/commands/usergroups_users.rb +2 -0
  59. data/bin/commands/users.rb +5 -3
  60. data/bin/commands/users_profile.rb +5 -5
  61. data/bin/commands/views.rb +1 -1
  62. data/bin/commands/workflows.rb +38 -0
  63. data/lib/slack-ruby-client.rb +5 -4
  64. data/lib/slack/events/request.rb +7 -3
  65. data/lib/slack/messages/message.rb +0 -4
  66. data/lib/slack/real_time/client.rb +2 -1
  67. data/lib/slack/real_time/concurrency.rb +0 -2
  68. data/lib/slack/real_time/concurrency/async.rb +1 -3
  69. data/lib/slack/real_time/config.rb +5 -14
  70. data/lib/slack/real_time/models/base.rb +0 -4
  71. data/lib/slack/real_time/socket.rb +2 -2
  72. data/lib/slack/real_time/stores/base.rb +3 -1
  73. data/lib/slack/version.rb +1 -1
  74. data/lib/slack/web/api/endpoints.rb +47 -0
  75. data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
  76. data/lib/slack/web/api/endpoints/admin_apps.rb +22 -2
  77. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  78. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  79. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  80. data/lib/slack/web/api/endpoints/admin_conversations.rb +246 -0
  81. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  82. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  83. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  84. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  85. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  86. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  87. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  88. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  89. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  90. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  91. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  92. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  93. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  94. data/lib/slack/web/api/endpoints/admin_users_session.rb +38 -0
  95. data/lib/slack/web/api/endpoints/api.rb +0 -2
  96. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  97. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  98. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  99. data/lib/slack/web/api/endpoints/bots.rb +2 -0
  100. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  101. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  102. data/lib/slack/web/api/endpoints/channels.rb +1 -245
  103. data/lib/slack/web/api/endpoints/chat.rb +23 -19
  104. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -1
  105. data/lib/slack/web/api/endpoints/conversations.rb +37 -19
  106. data/lib/slack/web/api/endpoints/dnd.rb +4 -0
  107. data/lib/slack/web/api/endpoints/files.rb +8 -4
  108. data/lib/slack/web/api/endpoints/files_remote.rb +4 -4
  109. data/lib/slack/web/api/endpoints/groups.rb +0 -253
  110. data/lib/slack/web/api/endpoints/im.rb +0 -101
  111. data/lib/slack/web/api/endpoints/migration.rb +2 -0
  112. data/lib/slack/web/api/endpoints/mpim.rb +0 -96
  113. data/lib/slack/web/api/endpoints/oauth.rb +1 -4
  114. data/lib/slack/web/api/endpoints/pins.rb +3 -8
  115. data/lib/slack/web/api/endpoints/reactions.rb +5 -3
  116. data/lib/slack/web/api/endpoints/search.rb +6 -0
  117. data/lib/slack/web/api/endpoints/stars.rb +2 -2
  118. data/lib/slack/web/api/endpoints/team.rb +6 -0
  119. data/lib/slack/web/api/endpoints/usergroups.rb +10 -0
  120. data/lib/slack/web/api/endpoints/usergroups_users.rb +4 -0
  121. data/lib/slack/web/api/endpoints/users.rb +7 -5
  122. data/lib/slack/web/api/endpoints/users_profile.rb +3 -3
  123. data/lib/slack/web/api/endpoints/views.rb +1 -1
  124. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  125. data/lib/slack/web/api/errors.rb +848 -0
  126. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  127. data/lib/slack/web/api/errors/slack_error.rb +12 -0
  128. data/lib/slack/web/api/mixins.rb +1 -0
  129. data/lib/slack/web/api/mixins/channels.id.rb +1 -3
  130. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  131. data/lib/slack/web/api/mixins/groups.id.rb +1 -3
  132. data/lib/slack/web/api/mixins/ids.id.rb +3 -5
  133. data/lib/slack/web/api/mixins/users.id.rb +1 -3
  134. data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +26 -24
  135. data/lib/slack/web/api/templates/endpoints.erb +1 -0
  136. data/lib/slack/web/api/templates/errors.erb +20 -0
  137. data/lib/slack/web/api/templates/method.erb +4 -1
  138. data/lib/slack/web/api/templates/method_spec.erb +1 -1
  139. data/lib/slack/web/client.rb +1 -1
  140. data/lib/slack/web/config.rb +2 -0
  141. data/lib/slack/web/faraday/connection.rb +23 -20
  142. data/lib/slack/web/faraday/response/raise_error.rb +16 -2
  143. data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
  144. data/lib/slack/web/pagination/cursor.rb +2 -2
  145. data/lib/tasks/real_time.rake +1 -1
  146. data/lib/tasks/web.rake +21 -4
  147. data/slack-ruby-client.gemspec +5 -5
  148. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  149. data/spec/fixtures/slack/web/{groups_info.yml → conversations_info.yml} +4 -4
  150. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  151. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  152. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  153. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  154. data/spec/slack/events/request_spec.rb +13 -8
  155. data/spec/slack/real_time/client_spec.rb +18 -1
  156. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  157. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  158. data/spec/slack/real_time/rtm_connect_spec.rb +1 -1
  159. data/spec/slack/real_time/rtm_start_spec.rb +1 -1
  160. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  161. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  162. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  163. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +5 -0
  164. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  165. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  166. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  167. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +93 -0
  168. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  169. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  170. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  171. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  172. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  173. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  174. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  175. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  176. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  177. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +8 -0
  178. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  179. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  180. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  181. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +2 -2
  182. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +3 -3
  183. data/spec/slack/web/api/endpoints/apps_spec.rb +2 -2
  184. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  185. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  186. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  187. data/spec/slack/web/api/endpoints/conversations_spec.rb +20 -12
  188. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  189. data/spec/slack/web/api/endpoints/files_comments_spec.rb +2 -2
  190. data/spec/slack/web/api/endpoints/files_remote_spec.rb +3 -3
  191. data/spec/slack/web/api/endpoints/files_spec.rb +4 -4
  192. data/spec/slack/web/api/endpoints/im_spec.rb +0 -31
  193. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -31
  194. data/spec/slack/web/api/endpoints/oauth_spec.rb +3 -14
  195. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -4
  196. data/spec/slack/web/api/endpoints/reactions_spec.rb +3 -3
  197. data/spec/slack/web/api/endpoints/reminders_spec.rb +2 -2
  198. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +2 -2
  199. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  200. data/spec/slack/web/api/errors/slack_error_spec.rb +22 -0
  201. data/spec/slack/web/api/mixins/channels_spec.rb +1 -1
  202. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  203. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  204. data/spec/slack/web/api/mixins/groups_spec.rb +1 -1
  205. data/spec/slack/web/api/mixins/users_spec.rb +1 -1
  206. data/spec/slack/web/client_spec.rb +121 -0
  207. data/spec/slack/web/faraday/response/raise_error_spec.rb +33 -9
  208. data/spec/support/vcr.rb +4 -0
  209. metadata +145 -55
  210. data/examples/hi_real_time/Gemfile +0 -6
  211. data/examples/hi_real_time/hi.gif +0 -0
  212. data/examples/hi_real_time/hi.rb +0 -41
  213. data/examples/hi_real_time_async_celluloid/Gemfile +0 -7
  214. data/examples/hi_real_time_async_celluloid/Procfile +0 -2
  215. data/examples/hi_real_time_async_celluloid/hi.rb +0 -39
  216. data/examples/hi_real_time_async_eventmachine/Gemfile +0 -7
  217. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  218. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -39
  219. data/lib/slack/real_time/concurrency/celluloid.rb +0 -142
  220. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -85
  221. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  222. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  223. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  224. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  225. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -15
  226. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -116
  227. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -57
  228. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -13
  229. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -13
  230. data/spec/slack/web/api/endpoints/views_spec.rb +0 -29
  231. data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -17
@@ -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 AppsEventAuthorizations
9
+ #
10
+ # Get a list of authorizations for the given event context. Each authorization represents an app installation that the event is visible to.
11
+ #
12
+ # @option options [Object] :event_context
13
+ # .
14
+ # @option options [Object] :cursor
15
+ # .
16
+ # @option options [Object] :limit
17
+ # .
18
+ # @see https://api.slack.com/methods/apps.event.authorizations.list
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.event.authorizations/apps.event.authorizations.list.json
20
+ def apps_event_authorizations_list(options = {})
21
+ throw ArgumentError.new('Required arguments :event_context missing') if options[:event_context].nil?
22
+ if block_given?
23
+ Pagination::Cursor.new(self, :apps_event_authorizations_list, options).each do |page|
24
+ yield page
25
+ end
26
+ else
27
+ post('apps.event.authorizations.list', options)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ 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 AuthTeams
9
+ #
10
+ # List the workspaces a token can access.
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] :include_icon
15
+ # Whether to return icon paths for each workspace. An icon path represents a URI pointing to the image signifying the workspace.
16
+ # @option options [Object] :limit
17
+ # The maximum number of workspaces to return. Must be a positive integer no larger than 1000.
18
+ # @see https://api.slack.com/methods/auth.teams.list
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/auth.teams/auth.teams.list.json
20
+ def auth_teams_list(options = {})
21
+ if block_given?
22
+ Pagination::Cursor.new(self, :auth_teams_list, options).each do |page|
23
+ yield page
24
+ end
25
+ else
26
+ post('auth.teams.list', options)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -11,6 +11,8 @@ module Slack
11
11
  #
12
12
  # @option options [Object] :bot
13
13
  # Bot user to get info on.
14
+ # @option options [Object] :team_id
15
+ # encoded team id or enterprise id where the bot exists, required if org token is used.
14
16
  # @see https://api.slack.com/methods/bots.info
15
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/bots/bots.info.json
16
18
  def bots_info(options = {})
@@ -0,0 +1,83 @@
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 Calls
9
+ #
10
+ # Registers a new Call.
11
+ #
12
+ # @option options [Object] :external_unique_id
13
+ # An ID supplied by the 3rd-party Call provider. It must be unique across all Calls from that service.
14
+ # @option options [Object] :join_url
15
+ # The URL required for a client to join the Call.
16
+ # @option options [Object] :created_by
17
+ # The valid Slack user ID of the user who created this Call. When this method is called with a user token, the created_by field is optional and defaults to the authed user of the token. Otherwise, the field is required.
18
+ # @option options [Object] :date_start
19
+ # Call start time in UTC UNIX timestamp format.
20
+ # @option options [Object] :desktop_app_join_url
21
+ # When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL.
22
+ # @option options [Object] :external_display_id
23
+ # An optional, human-readable ID supplied by the 3rd-party Call provider. If supplied, this ID will be displayed in the Call object.
24
+ # @option options [Object] :title
25
+ # The name of the Call.
26
+ # @option options [Object] :users
27
+ # The list of users to register as participants in the Call. Read more on how to specify users here.
28
+ # @see https://api.slack.com/methods/calls.add
29
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.add.json
30
+ def calls_add(options = {})
31
+ throw ArgumentError.new('Required arguments :external_unique_id missing') if options[:external_unique_id].nil?
32
+ throw ArgumentError.new('Required arguments :join_url missing') if options[:join_url].nil?
33
+ post('calls.add', options)
34
+ end
35
+
36
+ #
37
+ # Ends a Call.
38
+ #
39
+ # @option options [Object] :id
40
+ # id returned when registering the call using the calls.add method.
41
+ # @option options [Object] :duration
42
+ # Call duration in seconds.
43
+ # @see https://api.slack.com/methods/calls.end
44
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.end.json
45
+ def calls_end(options = {})
46
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
47
+ post('calls.end', options)
48
+ end
49
+
50
+ #
51
+ # Returns information about a Call.
52
+ #
53
+ # @option options [Object] :id
54
+ # id of the Call returned by the calls.add method.
55
+ # @see https://api.slack.com/methods/calls.info
56
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.info.json
57
+ def calls_info(options = {})
58
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
59
+ post('calls.info', options)
60
+ end
61
+
62
+ #
63
+ # Updates information about a Call.
64
+ #
65
+ # @option options [Object] :id
66
+ # id returned by the calls.add method.
67
+ # @option options [Object] :desktop_app_join_url
68
+ # When supplied, available Slack clients will attempt to directly launch the 3rd-party Call with this URL.
69
+ # @option options [Object] :join_url
70
+ # The URL required for a client to join the Call.
71
+ # @option options [Object] :title
72
+ # The name of the Call.
73
+ # @see https://api.slack.com/methods/calls.update
74
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls/calls.update.json
75
+ def calls_update(options = {})
76
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
77
+ post('calls.update', options)
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module CallsParticipants
9
+ #
10
+ # Registers new participants added to a Call.
11
+ #
12
+ # @option options [Object] :id
13
+ # id returned by the calls.add method.
14
+ # @option options [Object] :users
15
+ # The list of users to add as participants in the Call. Read more on how to specify users here.
16
+ # @see https://api.slack.com/methods/calls.participants.add
17
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls.participants/calls.participants.add.json
18
+ def calls_participants_add(options = {})
19
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
20
+ throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
21
+ post('calls.participants.add', options)
22
+ end
23
+
24
+ #
25
+ # Registers participants removed from a Call.
26
+ #
27
+ # @option options [Object] :id
28
+ # id returned by the calls.add method.
29
+ # @option options [Object] :users
30
+ # The list of users to remove as participants in the Call. Read more on how to specify users here.
31
+ # @see https://api.slack.com/methods/calls.participants.remove
32
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls.participants/calls.participants.remove.json
33
+ def calls_participants_remove(options = {})
34
+ throw ArgumentError.new('Required arguments :id missing') if options[:id].nil?
35
+ throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
36
+ post('calls.participants.remove', options)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -6,33 +6,6 @@ module Slack
6
6
  module Api
7
7
  module Endpoints
8
8
  module Channels
9
- #
10
- # Archives a channel.
11
- #
12
- # @option options [channel] :channel
13
- # Channel to archive.
14
- # @see https://api.slack.com/methods/channels.archive
15
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.archive.json
16
- def channels_archive(options = {})
17
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
18
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
19
- post('channels.archive', options)
20
- end
21
-
22
- #
23
- # Creates a channel.
24
- #
25
- # @option options [Object] :name
26
- # Name of channel to create.
27
- # @option options [Object] :validate
28
- # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
29
- # @see https://api.slack.com/methods/channels.create
30
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.create.json
31
- def channels_create(options = {})
32
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
33
- post('channels.create', options)
34
- end
35
-
36
9
  #
37
10
  # Delete a channel (undocumented)
38
11
  #
@@ -41,227 +14,10 @@ module Slack
41
14
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/channels/channels.delete.json
42
15
  def channels_delete(options = {})
43
16
  throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
44
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
17
+ options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
45
18
  logger.warn('The channels.delete method is undocumented.')
46
19
  post('channels.delete', options)
47
20
  end
48
-
49
- #
50
- # Fetches history of messages and events from a channel.
51
- #
52
- # @option options [channel] :channel
53
- # Channel to fetch history for.
54
- # @option options [Object] :inclusive
55
- # Include messages with latest or oldest timestamp in results.
56
- # @option options [timestamp] :latest
57
- # End of time range of messages to include in results.
58
- # @option options [timestamp] :oldest
59
- # Start of time range of messages to include in results.
60
- # @option options [Object] :unreads
61
- # Include unread_count_display in the output?.
62
- # @see https://api.slack.com/methods/channels.history
63
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.history.json
64
- def channels_history(options = {})
65
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
66
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
67
- post('channels.history', options)
68
- end
69
-
70
- #
71
- # Gets information about a channel.
72
- #
73
- # @option options [channel] :channel
74
- # Channel to get info on.
75
- # @option options [Object] :include_locale
76
- # Set this to true to receive the locale for this channel. Defaults to false.
77
- # @see https://api.slack.com/methods/channels.info
78
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.info.json
79
- def channels_info(options = {})
80
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
81
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
82
- post('channels.info', options)
83
- end
84
-
85
- #
86
- # Invites a user to a channel.
87
- #
88
- # @option options [channel] :channel
89
- # Channel to invite user to.
90
- # @option options [user] :user
91
- # User to invite to channel.
92
- # @see https://api.slack.com/methods/channels.invite
93
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.invite.json
94
- def channels_invite(options = {})
95
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
96
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
97
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
98
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
99
- post('channels.invite', options)
100
- end
101
-
102
- #
103
- # Joins a channel, creating it if needed.
104
- #
105
- # @option options [Object] :name
106
- # Name of channel to join.
107
- # @option options [Object] :validate
108
- # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
109
- # @see https://api.slack.com/methods/channels.join
110
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.join.json
111
- def channels_join(options = {})
112
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
113
- post('channels.join', options)
114
- end
115
-
116
- #
117
- # Removes a user from a channel.
118
- #
119
- # @option options [channel] :channel
120
- # Channel to remove user from.
121
- # @option options [user] :user
122
- # User to remove from channel.
123
- # @see https://api.slack.com/methods/channels.kick
124
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.kick.json
125
- def channels_kick(options = {})
126
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
127
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
128
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
129
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
130
- post('channels.kick', options)
131
- end
132
-
133
- #
134
- # Leaves a channel.
135
- #
136
- # @option options [channel] :channel
137
- # Channel to leave.
138
- # @see https://api.slack.com/methods/channels.leave
139
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.leave.json
140
- def channels_leave(options = {})
141
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
142
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
143
- post('channels.leave', options)
144
- end
145
-
146
- #
147
- # Lists all channels in a Slack team.
148
- #
149
- # @option options [Object] :cursor
150
- # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
151
- # @option options [Object] :exclude_archived
152
- # Exclude archived channels from the list.
153
- # @option options [Object] :exclude_members
154
- # Exclude the members collection from each channel.
155
- # @option options [Object] :limit
156
- # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
157
- # @see https://api.slack.com/methods/channels.list
158
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.list.json
159
- def channels_list(options = {})
160
- if block_given?
161
- Pagination::Cursor.new(self, :channels_list, options).each do |page|
162
- yield page
163
- end
164
- else
165
- post('channels.list', options)
166
- end
167
- end
168
-
169
- #
170
- # Sets the read cursor in a channel.
171
- #
172
- # @option options [channel] :channel
173
- # Channel to set reading cursor in.
174
- # @option options [timestamp] :ts
175
- # Timestamp of the most recently seen message.
176
- # @see https://api.slack.com/methods/channels.mark
177
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.mark.json
178
- def channels_mark(options = {})
179
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
180
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
181
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
182
- post('channels.mark', options)
183
- end
184
-
185
- #
186
- # Renames a channel.
187
- #
188
- # @option options [channel] :channel
189
- # Channel to rename.
190
- # @option options [Object] :name
191
- # New name for channel.
192
- # @option options [Object] :validate
193
- # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
194
- # @see https://api.slack.com/methods/channels.rename
195
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.rename.json
196
- def channels_rename(options = {})
197
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
198
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
199
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
200
- post('channels.rename', options)
201
- end
202
-
203
- #
204
- # Retrieve a thread of messages posted to a channel
205
- #
206
- # @option options [channel] :channel
207
- # Channel to fetch thread from.
208
- # @option options [Object] :thread_ts
209
- # Unique identifier of a thread's parent message.
210
- # @see https://api.slack.com/methods/channels.replies
211
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.replies.json
212
- def channels_replies(options = {})
213
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
214
- throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
215
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
216
- post('channels.replies', options)
217
- end
218
-
219
- #
220
- # Sets the purpose for a channel.
221
- #
222
- # @option options [channel] :channel
223
- # Channel to set the purpose of.
224
- # @option options [Object] :purpose
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.
228
- # @see https://api.slack.com/methods/channels.setPurpose
229
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.setPurpose.json
230
- def channels_setPurpose(options = {})
231
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
232
- throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
233
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
234
- post('channels.setPurpose', options)
235
- end
236
-
237
- #
238
- # Sets the topic for a channel.
239
- #
240
- # @option options [channel] :channel
241
- # Channel to set the topic of.
242
- # @option options [Object] :topic
243
- # The new topic.
244
- # @see https://api.slack.com/methods/channels.setTopic
245
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.setTopic.json
246
- def channels_setTopic(options = {})
247
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
248
- throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
249
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
250
- post('channels.setTopic', options)
251
- end
252
-
253
- #
254
- # Unarchives a channel.
255
- #
256
- # @option options [channel] :channel
257
- # Channel to unarchive.
258
- # @see https://api.slack.com/methods/channels.unarchive
259
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.unarchive.json
260
- def channels_unarchive(options = {})
261
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
262
- options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
263
- post('channels.unarchive', options)
264
- end
265
21
  end
266
22
  end
267
23
  end