slack-ruby-client 0.16.0 → 1.1.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 (234) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/danger.yml +19 -0
  3. data/.github/workflows/integtest.yml +25 -0
  4. data/.github/workflows/rubocop.yml +13 -0
  5. data/.github/workflows/test.yml +34 -0
  6. data/.gitignore +5 -3
  7. data/.rubocop.yml +6 -0
  8. data/.rubocop_todo.yml +137 -43
  9. data/CHANGELOG.md +34 -3
  10. data/CONTRIBUTING.md +4 -4
  11. data/Gemfile +18 -1
  12. data/Gemfile.danger +6 -0
  13. data/LICENSE.md +1 -1
  14. data/README.md +13 -12
  15. data/RELEASING.md +1 -1
  16. data/UPGRADING.md +42 -0
  17. data/bin/commands/admin_analytics.rb +2 -1
  18. data/bin/commands/admin_apps.rb +11 -0
  19. data/bin/commands/admin_apps_requests.rb +12 -0
  20. data/bin/commands/admin_auth_policy.rb +39 -0
  21. data/bin/commands/admin_conversations.rb +2 -1
  22. data/bin/commands/admin_conversations_restrictAccess.rb +1 -1
  23. data/bin/commands/admin_emoji.rb +2 -2
  24. data/bin/commands/admin_teams.rb +1 -1
  25. data/bin/commands/admin_users.rb +1 -0
  26. data/bin/commands/admin_users_session.rb +40 -0
  27. data/bin/commands/admin_users_unsupportedVersions.rb +15 -0
  28. data/bin/commands/apps_manifest.rb +52 -0
  29. data/bin/commands/bookmarks.rb +52 -0
  30. data/bin/commands/channels.rb +0 -157
  31. data/bin/commands/chat.rb +14 -9
  32. data/bin/commands/conversations.rb +61 -4
  33. data/bin/commands/dnd.rb +3 -1
  34. data/bin/commands/files.rb +2 -1
  35. data/bin/commands/groups.rb +0 -163
  36. data/bin/commands/im.rb +0 -62
  37. data/bin/commands/mpim.rb +0 -60
  38. data/bin/commands/oauth.rb +0 -13
  39. data/bin/commands/oauth_v2.rb +13 -1
  40. data/bin/commands/openid_connect.rb +27 -0
  41. data/bin/commands/pins.rb +2 -2
  42. data/bin/commands/reminders.rb +6 -0
  43. data/bin/commands/rtm.rb +2 -2
  44. data/bin/commands/search.rb +2 -1
  45. data/bin/commands/stars.rb +7 -6
  46. data/bin/commands/team.rb +1 -0
  47. data/bin/commands/team_billing.rb +13 -0
  48. data/bin/commands/team_preferences.rb +13 -0
  49. data/bin/commands/tooling_tokens.rb +14 -0
  50. data/bin/commands/usergroups.rb +1 -1
  51. data/bin/commands/users.rb +1 -1
  52. data/bin/commands/views.rb +1 -1
  53. data/bin/commands.rb +8 -9
  54. data/lib/slack/config.rb +1 -2
  55. data/lib/slack/events/request.rb +5 -3
  56. data/lib/slack/real_time/client.rb +6 -7
  57. data/lib/slack/real_time/concurrency/async.rb +6 -8
  58. data/lib/slack/real_time/config.rb +3 -13
  59. data/lib/slack/real_time/socket.rb +1 -2
  60. data/lib/slack/real_time/stores/base.rb +1 -6
  61. data/lib/slack/real_time/stores/starter.rb +6 -3
  62. data/lib/slack/real_time/stores/store.rb +5 -0
  63. data/lib/slack/version.rb +1 -1
  64. data/lib/slack/web/api/endpoints/admin_analytics.rb +5 -3
  65. data/lib/slack/web/api/endpoints/admin_apps.rb +21 -5
  66. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +2 -2
  67. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +20 -2
  68. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +2 -2
  69. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
  70. data/lib/slack/web/api/endpoints/admin_barriers.rb +6 -6
  71. data/lib/slack/web/api/endpoints/admin_conversations.rb +28 -26
  72. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +4 -4
  73. data/lib/slack/web/api/endpoints/admin_emoji.rb +11 -11
  74. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +7 -7
  75. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +3 -3
  76. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +2 -2
  77. data/lib/slack/web/api/endpoints/admin_teams.rb +7 -7
  78. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +2 -2
  79. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +2 -2
  80. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +5 -5
  81. data/lib/slack/web/api/endpoints/admin_usergroups.rb +10 -10
  82. data/lib/slack/web/api/endpoints/admin_users.rb +20 -18
  83. data/lib/slack/web/api/endpoints/admin_users_session.rb +65 -9
  84. data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
  85. data/lib/slack/web/api/endpoints/api.rb +1 -1
  86. data/lib/slack/web/api/endpoints/apps.rb +2 -2
  87. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +3 -3
  88. data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
  89. data/lib/slack/web/api/endpoints/auth.rb +1 -1
  90. data/lib/slack/web/api/endpoints/auth_teams.rb +3 -3
  91. data/lib/slack/web/api/endpoints/bookmarks.rb +86 -0
  92. data/lib/slack/web/api/endpoints/bots.rb +2 -2
  93. data/lib/slack/web/api/endpoints/calls.rb +15 -15
  94. data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
  95. data/lib/slack/web/api/endpoints/channels.rb +0 -265
  96. data/lib/slack/web/api/endpoints/chat.rb +67 -57
  97. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -3
  98. data/lib/slack/web/api/endpoints/conversations.rb +117 -27
  99. data/lib/slack/web/api/endpoints/dialog.rb +2 -2
  100. data/lib/slack/web/api/endpoints/dnd.rb +6 -3
  101. data/lib/slack/web/api/endpoints/files.rb +16 -14
  102. data/lib/slack/web/api/endpoints/files_comments.rb +1 -1
  103. data/lib/slack/web/api/endpoints/files_remote.rb +20 -20
  104. data/lib/slack/web/api/endpoints/groups.rb +0 -273
  105. data/lib/slack/web/api/endpoints/im.rb +0 -107
  106. data/lib/slack/web/api/endpoints/migration.rb +3 -3
  107. data/lib/slack/web/api/endpoints/mpim.rb +0 -102
  108. data/lib/slack/web/api/endpoints/oauth.rb +5 -27
  109. data/lib/slack/web/api/endpoints/oauth_v2.rb +24 -6
  110. data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
  111. data/lib/slack/web/api/endpoints/pins.rb +4 -4
  112. data/lib/slack/web/api/endpoints/reactions.rb +12 -12
  113. data/lib/slack/web/api/endpoints/reminders.rb +17 -5
  114. data/lib/slack/web/api/endpoints/rtm.rb +10 -10
  115. data/lib/slack/web/api/endpoints/search.rb +24 -16
  116. data/lib/slack/web/api/endpoints/stars.rb +11 -9
  117. data/lib/slack/web/api/endpoints/team.rb +10 -8
  118. data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
  119. data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
  120. data/lib/slack/web/api/endpoints/team_profile.rb +1 -1
  121. data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
  122. data/lib/slack/web/api/endpoints/usergroups.rb +19 -19
  123. data/lib/slack/web/api/endpoints/usergroups_users.rb +7 -7
  124. data/lib/slack/web/api/endpoints/users.rb +16 -16
  125. data/lib/slack/web/api/endpoints/users_profile.rb +4 -4
  126. data/lib/slack/web/api/endpoints/views.rb +12 -12
  127. data/lib/slack/web/api/endpoints/workflows.rb +9 -9
  128. data/lib/slack/web/api/endpoints.rb +16 -20
  129. data/lib/slack/web/api/errors/server_error.rb +37 -0
  130. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -4
  131. data/lib/slack/web/api/errors.rb +232 -16
  132. data/lib/slack/web/api/mixins.rb +0 -2
  133. data/lib/slack/web/api/patches/chat.1.patch +7 -9
  134. data/lib/slack/web/api/templates/endpoints.erb +0 -2
  135. data/lib/slack/web/faraday/connection.rb +5 -5
  136. data/lib/slack/web/faraday/request.rb +4 -1
  137. data/lib/slack/web/faraday/response/raise_error.rb +2 -14
  138. data/lib/slack/web/faraday/response/wrap_error.rb +11 -5
  139. data/lib/slack/web/pagination/cursor.rb +1 -5
  140. data/lib/slack-ruby-client.rb +3 -2
  141. data/lib/tasks/real_time.rake +1 -3
  142. data/lib/tasks/web.rake +4 -0
  143. data/slack-ruby-client.gemspec +5 -14
  144. data/spec/fixtures/slack/web/429_error.yml +50 -54
  145. data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
  146. data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
  147. data/spec/fixtures/slack/web/conversations_info.yml +167 -0
  148. data/spec/fixtures/slack/web/conversations_setTopic.yml +42 -27
  149. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +89 -59
  150. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +131 -86
  151. data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
  152. data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
  153. data/spec/fixtures/slack/web/rtm_start.yml +771 -60
  154. data/spec/fixtures/slack/web/users_info.yml +153 -69
  155. data/spec/fixtures/slack/web/users_list.yml +102 -41
  156. data/spec/fixtures/slack/web/views_open_error.yml +49 -42
  157. data/spec/integration/integration_spec.rb +1 -1
  158. data/spec/slack/events/request_spec.rb +7 -6
  159. data/spec/slack/real_time/client_spec.rb +37 -39
  160. data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
  161. data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -0
  162. data/spec/slack/real_time/event_handlers/bot_spec.rb +1 -1
  163. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -9
  164. data/spec/slack/real_time/event_handlers/group_spec.rb +2 -2
  165. data/spec/slack/real_time/event_handlers/im_spec.rb +7 -7
  166. data/spec/slack/real_time/event_handlers/user_spec.rb +2 -2
  167. data/spec/slack/real_time/rtm_connect_spec.rb +1 -1
  168. data/spec/slack/real_time/rtm_start_spec.rb +1 -1
  169. data/spec/slack/real_time/store_spec.rb +2 -2
  170. data/spec/slack/slack_spec.rb +7 -5
  171. data/spec/slack/version_spec.rb +1 -1
  172. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +5 -0
  173. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +5 -0
  174. data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -0
  175. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +9 -9
  176. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +1 -1
  177. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +6 -6
  178. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +22 -2
  179. data/spec/slack/web/api/endpoints/admin_users_spec.rb +8 -8
  180. data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -0
  181. data/spec/slack/web/api/endpoints/apps_manifest_spec.rb +36 -0
  182. data/spec/slack/web/api/endpoints/apps_spec.rb +2 -2
  183. data/spec/slack/web/api/endpoints/bookmarks_spec.rb +40 -0
  184. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +4 -4
  185. data/spec/slack/web/api/endpoints/calls_spec.rb +2 -2
  186. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +4 -6
  187. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +28 -16
  188. data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
  189. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +4 -2
  190. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +2 -2
  191. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +22 -14
  192. data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -5
  193. data/spec/slack/web/api/endpoints/files_comments_spec.rb +2 -2
  194. data/spec/slack/web/api/endpoints/files_remote_spec.rb +3 -3
  195. data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -11
  196. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +6 -3
  197. data/spec/slack/web/api/endpoints/{apps_permissions_scopes_spec.rb → openid_connect_spec.rb} +1 -1
  198. data/spec/slack/web/api/endpoints/reactions_spec.rb +3 -3
  199. data/spec/slack/web/api/endpoints/reminders_spec.rb +2 -2
  200. data/spec/slack/web/api/endpoints/{apps_permissions_resources_spec.rb → team_billing_spec.rb} +1 -1
  201. data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -0
  202. data/spec/slack/web/api/endpoints/tooling_tokens_spec.rb +13 -0
  203. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +2 -2
  204. data/spec/slack/web/api/error_spec.rb +5 -7
  205. data/spec/slack/web/api/errors/slack_error_spec.rb +21 -26
  206. data/spec/slack/web/api/mixins/conversations_list_spec.rb +1 -1
  207. data/spec/slack/web/api/pagination/cursor_spec.rb +8 -10
  208. data/spec/slack/web/client_spec.rb +46 -32
  209. data/spec/slack/web/faraday/request_spec.rb +80 -0
  210. data/spec/slack/web/faraday/response/raise_error_spec.rb +2 -1
  211. data/spec/spec_helper.rb +1 -1
  212. data/spec/support/real_time/connected_client.rb +2 -8
  213. data/spec/support/vcr.rb +33 -2
  214. metadata +50 -297
  215. data/.travis.yml +0 -28
  216. data/lib/slack/web/api/errors/internal_error.rb +0 -14
  217. data/lib/slack/web/api/mixins/channels.id.json +0 -20
  218. data/lib/slack/web/api/mixins/channels.id.rb +0 -25
  219. data/lib/slack/web/api/mixins/groups.id.json +0 -20
  220. data/lib/slack/web/api/mixins/groups.id.rb +0 -25
  221. data/spec/fixtures/slack/web/503_error.yml +0 -14
  222. data/spec/fixtures/slack/web/channels_info.yml +0 -139
  223. data/spec/fixtures/slack/web/groups_info.yml +0 -43
  224. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +0 -32
  225. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -16
  226. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +0 -19
  227. data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -109
  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/im_spec.rb +0 -39
  231. data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -39
  232. data/spec/slack/web/api/endpoints/views_spec.rb +0 -29
  233. data/spec/slack/web/api/mixins/channels_spec.rb +0 -43
  234. data/spec/slack/web/api/mixins/groups_spec.rb +0 -43
@@ -6,279 +6,6 @@ module Slack
6
6
  module Api
7
7
  module Endpoints
8
8
  module Groups
9
- #
10
- # Archives a private channel.
11
- #
12
- # @option options [group] :channel
13
- # Private channel to archive.
14
- # @see https://api.slack.com/methods/groups.archive
15
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.archive.json
16
- def groups_archive(options = {})
17
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
18
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
19
- logger.warn('groups.archive: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.archive.')
20
- post('groups.archive', options)
21
- end
22
-
23
- #
24
- # Creates a private channel.
25
- #
26
- # @option options [Object] :name
27
- # Name of private channel to create.
28
- # @option options [Object] :team_id
29
- # encoded team id to create the channel in, required if org token is used.
30
- # @option options [Object] :validate
31
- # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
32
- # @see https://api.slack.com/methods/groups.create
33
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.create.json
34
- def groups_create(options = {})
35
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
36
- logger.warn('groups.create: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.create.')
37
- post('groups.create', options)
38
- end
39
-
40
- #
41
- # Clones and archives a private channel.
42
- #
43
- # @option options [group] :channel
44
- # Private channel to clone and archive.
45
- # @see https://api.slack.com/methods/groups.createChild
46
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.createChild.json
47
- def groups_createChild(options = {})
48
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
49
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
50
- logger.warn('groups.createChild: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: .')
51
- post('groups.createChild', options)
52
- end
53
-
54
- #
55
- # Fetches history of messages and events from a private channel.
56
- #
57
- # @option options [group] :channel
58
- # Private channel to fetch history for.
59
- # @option options [Object] :inclusive
60
- # Include messages with latest or oldest timestamp in results.
61
- # @option options [timestamp] :latest
62
- # End of time range of messages to include in results.
63
- # @option options [timestamp] :oldest
64
- # Start of time range of messages to include in results.
65
- # @option options [Object] :unreads
66
- # Include unread_count_display in the output?.
67
- # @see https://api.slack.com/methods/groups.history
68
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.history.json
69
- def groups_history(options = {})
70
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
71
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
72
- logger.warn('groups.history: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.history.')
73
- post('groups.history', options)
74
- end
75
-
76
- #
77
- # Gets information about a private channel.
78
- #
79
- # @option options [group] :channel
80
- # Private channel to get info on.
81
- # @option options [Object] :include_locale
82
- # Set this to true to receive the locale for this group. Defaults to false.
83
- # @see https://api.slack.com/methods/groups.info
84
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.info.json
85
- def groups_info(options = {})
86
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
87
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
88
- logger.warn('groups.info: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.info.')
89
- post('groups.info', options)
90
- end
91
-
92
- #
93
- # Invites a user to a private channel.
94
- #
95
- # @option options [group] :channel
96
- # Private channel to invite user to.
97
- # @option options [user] :user
98
- # User to invite.
99
- # @see https://api.slack.com/methods/groups.invite
100
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.invite.json
101
- def groups_invite(options = {})
102
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
103
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
104
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
105
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
106
- logger.warn('groups.invite: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.invite.')
107
- post('groups.invite', options)
108
- end
109
-
110
- #
111
- # Removes a user from a private channel.
112
- #
113
- # @option options [group] :channel
114
- # Private channel to remove user from.
115
- # @option options [user] :user
116
- # User to remove from private channel.
117
- # @see https://api.slack.com/methods/groups.kick
118
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.kick.json
119
- def groups_kick(options = {})
120
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
121
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
122
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
123
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
124
- logger.warn('groups.kick: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.kick.')
125
- post('groups.kick', options)
126
- end
127
-
128
- #
129
- # Leaves a private channel.
130
- #
131
- # @option options [group] :channel
132
- # Private channel to leave.
133
- # @see https://api.slack.com/methods/groups.leave
134
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.leave.json
135
- def groups_leave(options = {})
136
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
137
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
138
- logger.warn('groups.leave: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.leave.')
139
- post('groups.leave', options)
140
- end
141
-
142
- #
143
- # Lists private channels that the calling user has access to.
144
- #
145
- # @option options [Object] :cursor
146
- # Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See pagination for more details.
147
- # @option options [Object] :exclude_archived
148
- # Don't return archived private channels.
149
- # @option options [Object] :exclude_members
150
- # Exclude the members from each group.
151
- # @option options [Object] :limit
152
- # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
153
- # @option options [Object] :team_id
154
- # encoded team id to list channels in, required if org token is used.
155
- # @see https://api.slack.com/methods/groups.list
156
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.list.json
157
- def groups_list(options = {})
158
- logger.warn('groups.list: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.list, users.conversations.')
159
- if block_given?
160
- Pagination::Cursor.new(self, :groups_list, options).each do |page|
161
- yield page
162
- end
163
- else
164
- post('groups.list', options)
165
- end
166
- end
167
-
168
- #
169
- # Sets the read cursor in a private channel.
170
- #
171
- # @option options [group] :channel
172
- # Channel or conversation to set the read cursor for.
173
- # @option options [timestamp] :ts
174
- # Unique identifier of message you want marked as most recently seen in this conversation.
175
- # @see https://api.slack.com/methods/groups.mark
176
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.mark.json
177
- def groups_mark(options = {})
178
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
179
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
180
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
181
- logger.warn('groups.mark: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.mark.')
182
- post('groups.mark', options)
183
- end
184
-
185
- #
186
- # Opens a private channel.
187
- #
188
- # @option options [group] :channel
189
- # Private channel to open.
190
- # @see https://api.slack.com/methods/groups.open
191
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.open.json
192
- def groups_open(options = {})
193
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
194
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
195
- logger.warn('groups.open: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: .')
196
- post('groups.open', options)
197
- end
198
-
199
- #
200
- # Renames a private channel.
201
- #
202
- # @option options [group] :channel
203
- # Private channel to rename.
204
- # @option options [Object] :name
205
- # New name for private channel.
206
- # @option options [Object] :validate
207
- # Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
208
- # @see https://api.slack.com/methods/groups.rename
209
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.rename.json
210
- def groups_rename(options = {})
211
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
212
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
213
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
214
- logger.warn('groups.rename: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.rename.')
215
- post('groups.rename', options)
216
- end
217
-
218
- #
219
- # Retrieve a thread of messages posted to a private channel
220
- #
221
- # @option options [group] :channel
222
- # Private channel to fetch thread from.
223
- # @option options [Object] :thread_ts
224
- # Unique identifier of a thread's parent message.
225
- # @see https://api.slack.com/methods/groups.replies
226
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.replies.json
227
- def groups_replies(options = {})
228
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
229
- throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
230
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
231
- logger.warn('groups.replies: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.replies.')
232
- post('groups.replies', options)
233
- end
234
-
235
- #
236
- # Sets the purpose for a private channel.
237
- #
238
- # @option options [group] :channel
239
- # Private channel to set the purpose of.
240
- # @option options [Object] :purpose
241
- # The new purpose.
242
- # @see https://api.slack.com/methods/groups.setPurpose
243
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.setPurpose.json
244
- def groups_setPurpose(options = {})
245
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
246
- throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
247
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
248
- logger.warn('groups.setPurpose: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.setPurpose.')
249
- post('groups.setPurpose', options)
250
- end
251
-
252
- #
253
- # Sets the topic for a private channel.
254
- #
255
- # @option options [group] :channel
256
- # Private channel to set the topic of.
257
- # @option options [Object] :topic
258
- # The new topic.
259
- # @see https://api.slack.com/methods/groups.setTopic
260
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.setTopic.json
261
- def groups_setTopic(options = {})
262
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
263
- throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
264
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
265
- logger.warn('groups.setTopic: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.setTopic.')
266
- post('groups.setTopic', options)
267
- end
268
-
269
- #
270
- # Unarchives a private channel.
271
- #
272
- # @option options [group] :channel
273
- # Private channel to unarchive.
274
- # @see https://api.slack.com/methods/groups.unarchive
275
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/groups/groups.unarchive.json
276
- def groups_unarchive(options = {})
277
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
278
- options = options.merge(channel: groups_id(options)['group']['id']) if options[:channel]
279
- logger.warn('groups.unarchive: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.unarchive.')
280
- post('groups.unarchive', options)
281
- end
282
9
  end
283
10
  end
284
11
  end
@@ -6,113 +6,6 @@ module Slack
6
6
  module Api
7
7
  module Endpoints
8
8
  module Im
9
- #
10
- # Close a direct message channel.
11
- #
12
- # @option options [im] :channel
13
- # Direct message channel to close.
14
- # @see https://api.slack.com/methods/im.close
15
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.close.json
16
- def im_close(options = {})
17
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
18
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
19
- logger.warn('im.close: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.close.')
20
- post('im.close', options)
21
- end
22
-
23
- #
24
- # Fetches history of messages and events from direct message channel.
25
- #
26
- # @option options [im] :channel
27
- # Direct message channel to fetch history for.
28
- # @option options [Object] :inclusive
29
- # Include messages with latest or oldest timestamp in results.
30
- # @option options [timestamp] :latest
31
- # End of time range of messages to include in results.
32
- # @option options [timestamp] :oldest
33
- # Start of time range of messages to include in results.
34
- # @option options [Object] :unreads
35
- # Include unread_count_display in the output?.
36
- # @see https://api.slack.com/methods/im.history
37
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.history.json
38
- def im_history(options = {})
39
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
40
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
41
- logger.warn('im.history: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.history.')
42
- post('im.history', options)
43
- end
44
-
45
- #
46
- # Lists direct message channels for the calling user.
47
- #
48
- # @option options [Object] :cursor
49
- # 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.
50
- # @option options [Object] :limit
51
- # 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.
52
- # @see https://api.slack.com/methods/im.list
53
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.list.json
54
- def im_list(options = {})
55
- logger.warn('im.list: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.list, users.conversations.')
56
- if block_given?
57
- Pagination::Cursor.new(self, :im_list, options).each do |page|
58
- yield page
59
- end
60
- else
61
- post('im.list', options)
62
- end
63
- end
64
-
65
- #
66
- # Sets the read cursor in a direct message channel.
67
- #
68
- # @option options [im] :channel
69
- # Direct message channel to set reading cursor in.
70
- # @option options [timestamp] :ts
71
- # Timestamp of the most recently seen message.
72
- # @see https://api.slack.com/methods/im.mark
73
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.mark.json
74
- def im_mark(options = {})
75
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
76
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
77
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
78
- logger.warn('im.mark: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.mark.')
79
- post('im.mark', options)
80
- end
81
-
82
- #
83
- # Opens a direct message channel.
84
- #
85
- # @option options [user] :user
86
- # User to open a direct message channel with.
87
- # @option options [Object] :include_locale
88
- # Set this to true to receive the locale for this im. Defaults to false.
89
- # @option options [Object] :return_im
90
- # Boolean, indicates you want the full IM channel definition in the response.
91
- # @see https://api.slack.com/methods/im.open
92
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.open.json
93
- def im_open(options = {})
94
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
95
- options = options.merge(user: users_id(options)['user']['id']) if options[:user]
96
- logger.warn('im.open: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.open.')
97
- post('im.open', options)
98
- end
99
-
100
- #
101
- # Retrieve a thread of messages posted to a direct message conversation
102
- #
103
- # @option options [im] :channel
104
- # Direct message channel to fetch thread from.
105
- # @option options [Object] :thread_ts
106
- # Unique identifier of a thread's parent message.
107
- # @see https://api.slack.com/methods/im.replies
108
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/im/im.replies.json
109
- def im_replies(options = {})
110
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
111
- throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
112
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
113
- logger.warn('im.replies: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.replies.')
114
- post('im.replies', options)
115
- end
116
9
  end
117
10
  end
118
11
  end
@@ -9,11 +9,11 @@ module Slack
9
9
  #
10
10
  # For Enterprise Grid workspaces, map local user IDs to global user IDs
11
11
  #
12
- # @option options [Object] :users
12
+ # @option options [array] :users
13
13
  # A comma-separated list of user ids, up to 400 per request.
14
- # @option options [Object] :team_id
14
+ # @option options [string] :team_id
15
15
  # Specify team_id starts with T in case of Org Token.
16
- # @option options [Object] :to_old
16
+ # @option options [boolean] :to_old
17
17
  # Specify true to convert W global user IDs to workspace-specific U IDs. Defaults to false.
18
18
  # @see https://api.slack.com/methods/migration.exchange
19
19
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/migration/migration.exchange.json
@@ -6,108 +6,6 @@ module Slack
6
6
  module Api
7
7
  module Endpoints
8
8
  module Mpim
9
- #
10
- # Closes a multiparty direct message channel.
11
- #
12
- # @option options [channel] :channel
13
- # MPIM to close.
14
- # @see https://api.slack.com/methods/mpim.close
15
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.close.json
16
- def mpim_close(options = {})
17
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
18
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
19
- logger.warn('mpim.close: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.close.')
20
- post('mpim.close', options)
21
- end
22
-
23
- #
24
- # Fetches history of messages and events from a multiparty direct message.
25
- #
26
- # @option options [channel] :channel
27
- # Multiparty direct message to fetch history for.
28
- # @option options [Object] :inclusive
29
- # Include messages with latest or oldest timestamp in results.
30
- # @option options [timestamp] :latest
31
- # End of time range of messages to include in results.
32
- # @option options [timestamp] :oldest
33
- # Start of time range of messages to include in results.
34
- # @option options [Object] :unreads
35
- # Include unread_count_display in the output?.
36
- # @see https://api.slack.com/methods/mpim.history
37
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.history.json
38
- def mpim_history(options = {})
39
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
40
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
41
- logger.warn('mpim.history: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.history.')
42
- post('mpim.history', options)
43
- end
44
-
45
- #
46
- # Lists multiparty direct message channels for the calling user.
47
- #
48
- # @option options [Object] :cursor
49
- # Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See pagination for more details.
50
- # @option options [Object] :limit
51
- # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
52
- # @see https://api.slack.com/methods/mpim.list
53
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.list.json
54
- def mpim_list(options = {})
55
- logger.warn('mpim.list: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.list, users.conversations.')
56
- if block_given?
57
- Pagination::Cursor.new(self, :mpim_list, options).each do |page|
58
- yield page
59
- end
60
- else
61
- post('mpim.list', options)
62
- end
63
- end
64
-
65
- #
66
- # Sets the read cursor in a multiparty direct message channel.
67
- #
68
- # @option options [channel] :channel
69
- # Channel or conversation to set the read cursor for.
70
- # @option options [timestamp] :ts
71
- # Unique identifier of message you want marked as most recently seen in this conversation.
72
- # @see https://api.slack.com/methods/mpim.mark
73
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.mark.json
74
- def mpim_mark(options = {})
75
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
76
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
77
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
78
- logger.warn('mpim.mark: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.mark.')
79
- post('mpim.mark', options)
80
- end
81
-
82
- #
83
- # This method opens a multiparty direct message.
84
- #
85
- # @option options [Object] :users
86
- # Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.
87
- # @see https://api.slack.com/methods/mpim.open
88
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.open.json
89
- def mpim_open(options = {})
90
- throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
91
- logger.warn('mpim.open: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.open.')
92
- post('mpim.open', options)
93
- end
94
-
95
- #
96
- # Retrieve a thread of messages posted to a direct message conversation from a multiparty direct message.
97
- #
98
- # @option options [channel] :channel
99
- # Multiparty direct message channel to fetch thread from.
100
- # @option options [Object] :thread_ts
101
- # Unique identifier of a thread's parent message.
102
- # @see https://api.slack.com/methods/mpim.replies
103
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/mpim/mpim.replies.json
104
- def mpim_replies(options = {})
105
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
106
- throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
107
- options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
108
- logger.warn('mpim.replies: This method is deprecated. It will stop functioning in February 2021 and will not work with newly created apps after June 10th, 2020. Alternative methods: conversations.replies.')
109
- post('mpim.replies', options)
110
- end
111
9
  end
112
10
  end
113
11
  end
@@ -9,43 +9,21 @@ module Slack
9
9
  #
10
10
  # Exchanges a temporary OAuth verifier code for an access token.
11
11
  #
12
- # @option options [Object] :client_id
12
+ # @option options [string] :client_id
13
13
  # Issued when you created your application.
14
- # @option options [Object] :client_secret
14
+ # @option options [string] :client_secret
15
15
  # Issued when you created your application.
16
- # @option options [Object] :code
16
+ # @option options [string] :code
17
17
  # The code param returned via the OAuth callback.
18
- # @option options [Object] :redirect_uri
18
+ # @option options [string] :redirect_uri
19
19
  # This must match the originally submitted URI (if one was sent).
20
- # @option options [Object] :single_channel
20
+ # @option options [boolean] :single_channel
21
21
  # Request the user to add your app only to a single channel. Only valid with a legacy workspace app.
22
22
  # @see https://api.slack.com/methods/oauth.access
23
23
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth/oauth.access.json
24
24
  def oauth_access(options = {})
25
25
  post('oauth.access', options)
26
26
  end
27
-
28
- #
29
- # Exchanges a temporary OAuth verifier code for a workspace token.
30
- #
31
- # @option options [Object] :client_id
32
- # Issued when you created your application.
33
- # @option options [Object] :client_secret
34
- # Issued when you created your application.
35
- # @option options [Object] :code
36
- # The code param returned via the OAuth callback.
37
- # @option options [Object] :redirect_uri
38
- # This must match the originally submitted URI (if one was sent).
39
- # @option options [Object] :single_channel
40
- # Request the user to add your app only to a single channel.
41
- # @see https://api.slack.com/methods/oauth.token
42
- # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth/oauth.token.json
43
- def oauth_token(options = {})
44
- throw ArgumentError.new('Required arguments :client_id missing') if options[:client_id].nil?
45
- throw ArgumentError.new('Required arguments :client_secret missing') if options[:client_secret].nil?
46
- throw ArgumentError.new('Required arguments :code missing') if options[:code].nil?
47
- post('oauth.token', options)
48
- end
49
27
  end
50
28
  end
51
29
  end
@@ -9,20 +9,38 @@ module Slack
9
9
  #
10
10
  # Exchanges a temporary OAuth verifier code for an access token.
11
11
  #
12
- # @option options [Object] :code
13
- # The code param returned via the OAuth callback.
14
- # @option options [Object] :client_id
12
+ # @option options [string] :client_id
15
13
  # Issued when you created your application.
16
- # @option options [Object] :client_secret
14
+ # @option options [string] :client_secret
17
15
  # Issued when you created your application.
18
- # @option options [Object] :redirect_uri
16
+ # @option options [string] :code
17
+ # The code param returned via the OAuth callback.
18
+ # @option options [string] :grant_type
19
+ # The grant_type param as described in the OAuth spec.
20
+ # @option options [string] :redirect_uri
19
21
  # This must match the originally submitted URI (if one was sent).
22
+ # @option options [string] :refresh_token
23
+ # The refresh_token param as described in the OAuth spec.
20
24
  # @see https://api.slack.com/methods/oauth.v2.access
21
25
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth.v2/oauth.v2.access.json
22
26
  def oauth_v2_access(options = {})
23
- throw ArgumentError.new('Required arguments :code missing') if options[:code].nil?
24
27
  post('oauth.v2.access', options)
25
28
  end
29
+
30
+ #
31
+ # Exchanges a legacy access token for a new expiring access token and refresh token
32
+ #
33
+ # @option options [string] :client_id
34
+ # Issued when you created your application.
35
+ # @option options [string] :client_secret
36
+ # Issued when you created your application.
37
+ # @see https://api.slack.com/methods/oauth.v2.exchange
38
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/oauth.v2/oauth.v2.exchange.json
39
+ def oauth_v2_exchange(options = {})
40
+ throw ArgumentError.new('Required arguments :client_id missing') if options[:client_id].nil?
41
+ throw ArgumentError.new('Required arguments :client_secret missing') if options[:client_secret].nil?
42
+ post('oauth.v2.exchange', options)
43
+ end
26
44
  end
27
45
  end
28
46
  end