slack-ruby-client 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/{integtest.yml → integration_test.yml} +6 -5
  3. data/.github/workflows/{rubocop.yml → lint.yml} +5 -4
  4. data/.github/workflows/{danger.yml → pr_lint.yml} +8 -6
  5. data/.github/workflows/test.yml +4 -2
  6. data/.gitignore +0 -1
  7. data/.rubocop.yml +4 -0
  8. data/.rubocop_todo.yml +8 -14
  9. data/.ruby-version +1 -0
  10. data/CHANGELOG.md +14 -0
  11. data/CONTRIBUTING.md +5 -4
  12. data/Gemfile +1 -6
  13. data/README.md +60 -63
  14. data/RELEASING.md +1 -1
  15. data/UPGRADING.md +28 -0
  16. data/bin/commands/admin_audit_anomaly_allow.rb +23 -0
  17. data/bin/commands/admin_conversations.rb +12 -11
  18. data/bin/commands/admin_users.rb +1 -1
  19. data/bin/commands/admin_users_session.rb +1 -1
  20. data/bin/commands/apps_connections.rb +2 -2
  21. data/bin/commands/bookmarks.rb +1 -0
  22. data/bin/commands/chat.rb +9 -6
  23. data/bin/commands/conversations.rb +8 -6
  24. data/bin/commands/files.rb +24 -0
  25. data/bin/commands/rtm.rb +0 -15
  26. data/bin/commands/views.rb +4 -2
  27. data/bin/commands.rb +1 -0
  28. data/bin/slack +1 -1
  29. data/lib/slack/real_time/api/message.rb +3 -2
  30. data/lib/slack/real_time/api/templates/event_handler.erb +5 -1
  31. data/lib/slack/real_time/api/typing.rb +2 -1
  32. data/lib/slack/real_time/client.rb +8 -26
  33. data/lib/slack/real_time/config.rb +3 -3
  34. data/lib/slack/real_time/models/channel.rb +4 -0
  35. data/lib/slack/real_time/models/{group.rb → mpim.rb} +1 -1
  36. data/lib/slack/real_time/models.rb +2 -1
  37. data/lib/slack/real_time/stores/base.rb +25 -9
  38. data/lib/slack/real_time/stores/starter.rb +323 -309
  39. data/lib/slack/real_time/stores/store.rb +265 -198
  40. data/lib/slack/real_time/stores.rb +1 -7
  41. data/lib/slack/version.rb +1 -1
  42. data/lib/slack/web/api/endpoints/admin_analytics.rb +1 -1
  43. data/lib/slack/web/api/endpoints/admin_apps.rb +2 -2
  44. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +1 -1
  45. data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
  46. data/lib/slack/web/api/endpoints/admin_auth_policy.rb +7 -7
  47. data/lib/slack/web/api/endpoints/admin_barriers.rb +8 -8
  48. data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -28
  49. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +6 -6
  50. data/lib/slack/web/api/endpoints/admin_emoji.rb +7 -7
  51. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +2 -2
  52. data/lib/slack/web/api/endpoints/admin_teams.rb +2 -2
  53. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +1 -1
  54. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +1 -1
  55. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +11 -11
  56. data/lib/slack/web/api/endpoints/admin_usergroups.rb +7 -7
  57. data/lib/slack/web/api/endpoints/admin_users.rb +16 -16
  58. data/lib/slack/web/api/endpoints/admin_users_session.rb +8 -8
  59. data/lib/slack/web/api/endpoints/apps.rb +2 -2
  60. data/lib/slack/web/api/endpoints/apps_connections.rb +1 -1
  61. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +1 -1
  62. data/lib/slack/web/api/endpoints/apps_manifest.rb +6 -6
  63. data/lib/slack/web/api/endpoints/bookmarks.rb +10 -8
  64. data/lib/slack/web/api/endpoints/bots.rb +1 -1
  65. data/lib/slack/web/api/endpoints/calls.rb +5 -5
  66. data/lib/slack/web/api/endpoints/calls_participants.rb +4 -4
  67. data/lib/slack/web/api/endpoints/chat.rb +36 -30
  68. data/lib/slack/web/api/endpoints/conversations.rb +37 -33
  69. data/lib/slack/web/api/endpoints/dialog.rb +2 -2
  70. data/lib/slack/web/api/endpoints/dnd.rb +1 -1
  71. data/lib/slack/web/api/endpoints/files.rb +45 -8
  72. data/lib/slack/web/api/endpoints/files_comments.rb +2 -2
  73. data/lib/slack/web/api/endpoints/files_remote.rb +8 -8
  74. data/lib/slack/web/api/endpoints/migration.rb +1 -1
  75. data/lib/slack/web/api/endpoints/oauth_v2.rb +2 -2
  76. data/lib/slack/web/api/endpoints/pins.rb +3 -3
  77. data/lib/slack/web/api/endpoints/reactions.rb +4 -4
  78. data/lib/slack/web/api/endpoints/reminders.rb +5 -5
  79. data/lib/slack/web/api/endpoints/rtm.rb +0 -23
  80. data/lib/slack/web/api/endpoints/search.rb +3 -3
  81. data/lib/slack/web/api/endpoints/tooling_tokens.rb +1 -1
  82. data/lib/slack/web/api/endpoints/usergroups.rb +4 -4
  83. data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -3
  84. data/lib/slack/web/api/endpoints/users.rb +4 -4
  85. data/lib/slack/web/api/endpoints/users_admin.rb +2 -2
  86. data/lib/slack/web/api/endpoints/views.rb +16 -11
  87. data/lib/slack/web/api/endpoints/workflows.rb +4 -4
  88. data/lib/slack/web/api/endpoints.rb +2 -0
  89. data/lib/slack/web/api/errors.rb +56 -6
  90. data/lib/slack/web/api/mixins/conversations.id.rb +1 -1
  91. data/lib/slack/web/api/mixins/users.id.rb +1 -1
  92. data/lib/slack/web/api/mixins/users.search.rb +2 -1
  93. data/lib/slack/web/api/patches/{chat.1.patch → chat.attachments-blocks.patch} +13 -14
  94. data/lib/slack/web/api/patches/{dialog.1.open-json-support.patch → dialog.encoded-json.patch} +4 -4
  95. data/lib/slack/web/api/patches/views.view-json.patch +55 -0
  96. data/lib/slack/web/api/templates/method.erb +1 -1
  97. data/lib/slack/web/config.rb +2 -2
  98. data/lib/tasks/real_time.rake +44 -22
  99. data/lib/tasks/web.rake +9 -2
  100. data/spec/fixtures/slack/web/rtm_connect.yml +85 -1
  101. data/spec/slack/events/config_spec.rb +2 -0
  102. data/spec/slack/events/request_spec.rb +4 -0
  103. data/spec/slack/messages/formatting_spec.rb +10 -0
  104. data/spec/slack/real_time/api/message_spec.rb +1 -1
  105. data/spec/slack/real_time/api/ping_spec.rb +1 -1
  106. data/spec/slack/real_time/api/typing_spec.rb +1 -1
  107. data/spec/slack/real_time/client_spec.rb +73 -111
  108. data/spec/slack/real_time/event_handlers/bot_spec.rb +19 -17
  109. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +1 -1
  110. data/spec/slack/real_time/event_handlers/im_spec.rb +28 -25
  111. data/spec/slack/real_time/event_handlers/{group_spec.rb → private_channel_spec.rb} +35 -27
  112. data/spec/slack/real_time/event_handlers/{channel_spec.rb → public_channel_spec.rb} +24 -20
  113. data/spec/slack/real_time/event_handlers/team_spec.rb +7 -8
  114. data/spec/slack/real_time/event_handlers/user_spec.rb +6 -5
  115. data/spec/slack/real_time/stores/store_spec.rb +50 -0
  116. data/spec/slack/slack_spec.rb +1 -0
  117. data/spec/slack/web/api/endpoints/admin_audit_anomaly_allow_spec.rb +8 -0
  118. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +17 -1
  119. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +2 -0
  120. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +13 -4
  121. data/spec/slack/web/api/endpoints/files_spec.rb +13 -0
  122. data/spec/slack/web/api/mixins/conversations_spec.rb +2 -0
  123. data/spec/slack/web/api/mixins/users_spec.rb +2 -0
  124. data/spec/slack/web/api/pagination/cursor_spec.rb +4 -0
  125. data/spec/slack/web/client_spec.rb +14 -4
  126. data/spec/support/real_time/loaded_client.rb +120 -0
  127. metadata +18 -35
  128. data/bin/commands/admin_conversations_whitelist.rb +0 -37
  129. data/bin/commands/apps_permissions.rb +0 -23
  130. data/bin/commands/apps_permissions_resources.rb +0 -15
  131. data/bin/commands/apps_permissions_scopes.rb +0 -13
  132. data/bin/commands/apps_permissions_users.rb +0 -26
  133. data/bin/commands/channels.rb +0 -23
  134. data/bin/commands/groups.rb +0 -14
  135. data/bin/commands/im.rb +0 -6
  136. data/bin/commands/mpim.rb +0 -6
  137. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +0 -64
  138. data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -36
  139. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +0 -31
  140. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +0 -21
  141. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +0 -50
  142. data/lib/slack/web/api/endpoints/channels.rb +0 -25
  143. data/lib/slack/web/api/endpoints/groups.rb +0 -13
  144. data/lib/slack/web/api/endpoints/im.rb +0 -13
  145. data/lib/slack/web/api/endpoints/mpim.rb +0 -13
  146. data/lib/slack/web/api/endpoints/presence.rb +0 -23
  147. data/lib/slack/web/api/patches/views.1.view-json.patch +0 -40
  148. data/lib/slack/web/api/patches/views.1.views-published.patch +0 -16
  149. data/spec/fixtures/slack/web/rtm_start.yml +0 -815
  150. data/spec/slack/real_time/rtm_start_spec.rb +0 -14
  151. data/spec/slack/real_time/store_spec.rb +0 -12
@@ -24,7 +24,7 @@ module Slack
24
24
  # @see https://api.slack.com/methods/usergroups.create
25
25
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.create.json
26
26
  def usergroups_create(options = {})
27
- throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
27
+ raise ArgumentError, 'Required arguments :name missing' if options[:name].nil?
28
28
  post('usergroups.create', options)
29
29
  end
30
30
 
@@ -40,7 +40,7 @@ module Slack
40
40
  # @see https://api.slack.com/methods/usergroups.disable
41
41
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.disable.json
42
42
  def usergroups_disable(options = {})
43
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
43
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
44
44
  post('usergroups.disable', options)
45
45
  end
46
46
 
@@ -56,7 +56,7 @@ module Slack
56
56
  # @see https://api.slack.com/methods/usergroups.enable
57
57
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.enable.json
58
58
  def usergroups_enable(options = {})
59
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
59
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
60
60
  post('usergroups.enable', options)
61
61
  end
62
62
 
@@ -97,7 +97,7 @@ module Slack
97
97
  # @see https://api.slack.com/methods/usergroups.update
98
98
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups/usergroups.update.json
99
99
  def usergroups_update(options = {})
100
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
100
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
101
101
  post('usergroups.update', options)
102
102
  end
103
103
  end
@@ -18,7 +18,7 @@ module Slack
18
18
  # @see https://api.slack.com/methods/usergroups.users.list
19
19
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups.users/usergroups.users.list.json
20
20
  def usergroups_users_list(options = {})
21
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
21
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
22
22
  post('usergroups.users.list', options)
23
23
  end
24
24
 
@@ -36,8 +36,8 @@ module Slack
36
36
  # @see https://api.slack.com/methods/usergroups.users.update
37
37
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/usergroups.users/usergroups.users.update.json
38
38
  def usergroups_users_update(options = {})
39
- throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
40
- throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
39
+ raise ArgumentError, 'Required arguments :usergroup missing' if options[:usergroup].nil?
40
+ raise ArgumentError, 'Required arguments :users missing' if options[:users].nil?
41
41
  post('usergroups.users.update', options)
42
42
  end
43
43
  end
@@ -74,7 +74,7 @@ module Slack
74
74
  # @see https://api.slack.com/methods/users.info
75
75
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.info.json
76
76
  def users_info(options = {})
77
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
77
+ raise ArgumentError, 'Required arguments :user missing' if options[:user].nil?
78
78
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
79
79
  post('users.info', options)
80
80
  end
@@ -110,7 +110,7 @@ module Slack
110
110
  # @see https://api.slack.com/methods/users.lookupByEmail
111
111
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.lookupByEmail.json
112
112
  def users_lookupByEmail(options = {})
113
- throw ArgumentError.new('Required arguments :email missing') if options[:email].nil?
113
+ raise ArgumentError, 'Required arguments :email missing' if options[:email].nil?
114
114
  post('users.lookupByEmail', options)
115
115
  end
116
116
 
@@ -132,7 +132,7 @@ module Slack
132
132
  # X coordinate of top-left corner of crop box.
133
133
  # @option options [string] :crop_y
134
134
  # Y coordinate of top-left corner of crop box.
135
- # @option options [string] :image
135
+ # @option options [Object] :image
136
136
  # File contents via multipart/form-data.
137
137
  # @see https://api.slack.com/methods/users.setPhoto
138
138
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setPhoto.json
@@ -148,7 +148,7 @@ module Slack
148
148
  # @see https://api.slack.com/methods/users.setPresence
149
149
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setPresence.json
150
150
  def users_setPresence(options = {})
151
- throw ArgumentError.new('Required arguments :presence missing') if options[:presence].nil?
151
+ raise ArgumentError, 'Required arguments :presence missing' if options[:presence].nil?
152
152
  post('users.setPresence', options)
153
153
  end
154
154
  end
@@ -25,7 +25,7 @@ module Slack
25
25
  # Invite a guest that can use one channel only
26
26
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/users.admin/users.admin.invite.json
27
27
  def users_admin_invite(options = {})
28
- throw ArgumentError.new('Required arguments :email missing') if options[:email].nil?
28
+ raise ArgumentError, 'Required arguments :email missing' if options[:email].nil?
29
29
  logger.warn('The users.admin.invite method is undocumented.')
30
30
  post('users.admin.invite', options)
31
31
  end
@@ -37,7 +37,7 @@ module Slack
37
37
  # User to disable
38
38
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/users.admin/users.admin.setInactive.json
39
39
  def users_admin_setInactive(options = {})
40
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
40
+ raise ArgumentError, 'Required arguments :user missing' if options[:user].nil?
41
41
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
42
42
  logger.warn('The users.admin.setInactive method is undocumented.')
43
43
  post('users.admin.setInactive', options)
@@ -9,15 +9,17 @@ module Slack
9
9
  #
10
10
  # Open a view for a user.
11
11
  #
12
- # @option options [string] :trigger_id
13
- # Exchange a trigger to post to the user.
14
12
  # @option options [view as string] :view
15
13
  # A view payload. This must be a JSON-encoded string.
14
+ # @option options [string] :trigger_id
15
+ # Exchange a trigger to post to the user.
16
+ # @option options [string] :interactivity_pointer
17
+ # Exchange an interactivity pointer to post to the user.
16
18
  # @see https://api.slack.com/methods/views.open
17
19
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.open.json
18
20
  def views_open(options = {})
19
- throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
20
- throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
21
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
22
+ raise ArgumentError, 'One of :trigger_id, :interactivity_pointer is required' unless options[:trigger_id].nil? ^ options[:interactivity_pointer].nil?
21
23
  if options.key?(:view)
22
24
  view = options[:view]
23
25
  view = JSON.dump(view) unless view.is_a?(String)
@@ -38,8 +40,8 @@ module Slack
38
40
  # @see https://api.slack.com/methods/views.publish
39
41
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.publish.json
40
42
  def views_publish(options = {})
41
- throw ArgumentError.new('Required arguments :user_id missing') if options[:user_id].nil?
42
- throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
43
+ raise ArgumentError, 'Required arguments :user_id missing' if options[:user_id].nil?
44
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
43
45
  if options.key?(:view)
44
46
  view = options[:view]
45
47
  view = JSON.dump(view) unless view.is_a?(String)
@@ -51,15 +53,17 @@ module Slack
51
53
  #
52
54
  # Push a view onto the stack of a root view.
53
55
  #
54
- # @option options [string] :trigger_id
55
- # Exchange a trigger to post to the user.
56
56
  # @option options [view as string] :view
57
57
  # A view payload. This must be a JSON-encoded string.
58
+ # @option options [string] :trigger_id
59
+ # Exchange a trigger to post to the user.
60
+ # @option options [string] :interactivity_pointer
61
+ # Exchange an interactivity pointer to post to the user.
58
62
  # @see https://api.slack.com/methods/views.push
59
63
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.push.json
60
64
  def views_push(options = {})
61
- throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
62
- throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
65
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
66
+ raise ArgumentError, 'One of :trigger_id, :interactivity_pointer is required' unless options[:trigger_id].nil? ^ options[:interactivity_pointer].nil?
63
67
  if options.key?(:view)
64
68
  view = options[:view]
65
69
  view = JSON.dump(view) unless view.is_a?(String)
@@ -82,7 +86,8 @@ module Slack
82
86
  # @see https://api.slack.com/methods/views.update
83
87
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/views/views.update.json
84
88
  def views_update(options = {})
85
- throw ArgumentError.new('Required arguments :view missing') if options[:view].nil?
89
+ raise ArgumentError, 'Required arguments :view missing' if options[:view].nil?
90
+ raise ArgumentError, 'One of :external_id, :view_id is required' unless options[:external_id].nil? ^ options[:view_id].nil?
86
91
  if options.key?(:view)
87
92
  view = options[:view]
88
93
  view = JSON.dump(view) unless view.is_a?(String)
@@ -16,7 +16,7 @@ module Slack
16
16
  # @see https://api.slack.com/methods/workflows.stepCompleted
17
17
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows/workflows.stepCompleted.json
18
18
  def workflows_stepCompleted(options = {})
19
- throw ArgumentError.new('Required arguments :workflow_step_execute_id missing') if options[:workflow_step_execute_id].nil?
19
+ raise ArgumentError, 'Required arguments :workflow_step_execute_id missing' if options[:workflow_step_execute_id].nil?
20
20
  post('workflows.stepCompleted', options)
21
21
  end
22
22
 
@@ -30,8 +30,8 @@ module Slack
30
30
  # @see https://api.slack.com/methods/workflows.stepFailed
31
31
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows/workflows.stepFailed.json
32
32
  def workflows_stepFailed(options = {})
33
- throw ArgumentError.new('Required arguments :error missing') if options[:error].nil?
34
- throw ArgumentError.new('Required arguments :workflow_step_execute_id missing') if options[:workflow_step_execute_id].nil?
33
+ raise ArgumentError, 'Required arguments :error missing' if options[:error].nil?
34
+ raise ArgumentError, 'Required arguments :workflow_step_execute_id missing' if options[:workflow_step_execute_id].nil?
35
35
  post('workflows.stepFailed', options)
36
36
  end
37
37
 
@@ -51,7 +51,7 @@ module Slack
51
51
  # @see https://api.slack.com/methods/workflows.updateStep
52
52
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/workflows/workflows.updateStep.json
53
53
  def workflows_updateStep(options = {})
54
- throw ArgumentError.new('Required arguments :workflow_step_edit_id missing') if options[:workflow_step_edit_id].nil?
54
+ raise ArgumentError, 'Required arguments :workflow_step_edit_id missing' if options[:workflow_step_edit_id].nil?
55
55
  post('workflows.updateStep', options)
56
56
  end
57
57
  end
@@ -6,6 +6,7 @@ require_relative 'endpoints/admin_apps'
6
6
  require_relative 'endpoints/admin_apps_approved'
7
7
  require_relative 'endpoints/admin_apps_requests'
8
8
  require_relative 'endpoints/admin_apps_restricted'
9
+ require_relative 'endpoints/admin_audit_anomaly_allow'
9
10
  require_relative 'endpoints/admin_auth_policy'
10
11
  require_relative 'endpoints/admin_barriers'
11
12
  require_relative 'endpoints/admin_conversations'
@@ -79,6 +80,7 @@ module Slack
79
80
  include AdminAppsApproved
80
81
  include AdminAppsRequests
81
82
  include AdminAppsRestricted
83
+ include AdminAuditAnomalyAllow
82
84
  include AdminAuthPolicy
83
85
  include AdminBarriers
84
86
  include AdminConversations
@@ -19,8 +19,10 @@ module Slack
19
19
  class AlreadyProcessed < SlackError; end
20
20
  class AlreadyReacted < SlackError; end
21
21
  class AlreadyStarred < SlackError; end
22
+ class AltTxtTooLarge < SlackError; end
22
23
  class AppManagementAppNotInstalledOnOrg < SlackError; end
23
24
  class AppMissingActionUrl < SlackError; end
25
+ class AppNotEligible < SlackError; end
24
26
  class AppNotFound < SlackError; end
25
27
  class AppRestrictedOrgWide < SlackError; end
26
28
  class ApprovalInactive < SlackError; end
@@ -41,6 +43,7 @@ module Slack
41
43
  class BarrierAlreadyExists < SlackError; end
42
44
  class BarrierNotFound < SlackError; end
43
45
  class BarrieredFromUsergroupsNotFound < SlackError; end
46
+ class BlockMismatch < SlackError; end
44
47
  class BotNotFound < SlackError; end
45
48
  class BotUserRequired < SlackError; end
46
49
  class BotsNotAllowed < SlackError; end
@@ -102,6 +105,7 @@ module Slack
102
105
  class ChannelTypeNotSupported < SlackError; end
103
106
  class ClientIdTokenMismatch < SlackError; end
104
107
  class CodeAlreadyUsed < SlackError; end
108
+ class ConnectedTeamPassedInIsNotTopLevelTeam < SlackError; end
105
109
  class ConnectionLimitExceeded < SlackError; end
106
110
  class ConnectionLimitExceededPending < SlackError; end
107
111
  class CouldNotArchiveChannel < SlackError; end
@@ -136,6 +140,7 @@ module Slack
136
140
  class EmailTaken < SlackError; end
137
141
  class EmojiLimitReached < SlackError; end
138
142
  class EmojiNotFound < SlackError; end
143
+ class EndpointUnavailable < SlackError; end
139
144
  class EnterpriseIsRestricted < SlackError; end
140
145
  class EnterpriseNotFound < SlackError; end
141
146
  class EntityNotFound < SlackError; end
@@ -153,6 +158,7 @@ module Slack
153
158
  class ExchangedTriggerId < SlackError; end
154
159
  class ExpiredTriggerId < SlackError; end
155
160
  class ExternalChannelMigrating < SlackError; end
161
+ class ExternalTeamNotConnectedToThisOrg < SlackError; end
156
162
  class ExternallySharedOrDisconnectedChannel < SlackError; end
157
163
  class FailToGetTeamsForRestrictedUser < SlackError; end
158
164
  class FailedAddingCollaborator < SlackError; end
@@ -178,6 +184,7 @@ module Slack
178
184
  class FailedToSetUserToAdmin < SlackError; end
179
185
  class FailedToSetUserToOwner < SlackError; end
180
186
  class FailedToSetUserToRegular < SlackError; end
187
+ class FailedToStartTrial < SlackError; end
181
188
  class FailedToUnlinkChannel < SlackError; end
182
189
  class FailedToUnshare < SlackError; end
183
190
  class FailedToValidateCaller < SlackError; end
@@ -196,6 +203,9 @@ module Slack
196
203
  class FileNotShared < SlackError; end
197
204
  class FileNotYetAvailable < SlackError; end
198
205
  class FileUnderReview < SlackError; end
206
+ class FileUpdateFailed < SlackError; end
207
+ class FileUploadSizeRestricted < SlackError; end
208
+ class FileUploadsDisabled < SlackError; end
199
209
  class ForbiddenHandle < SlackError; end
200
210
  class ForbiddenTeam < SlackError; end
201
211
  class GroupAlreadyLinkedToChannel < SlackError; end
@@ -241,6 +251,7 @@ module Slack
241
251
  class InvalidEntityId < SlackError; end
242
252
  class InvalidEventContext < SlackError; end
243
253
  class InvalidExternalId < SlackError; end
254
+ class InvalidFieldOrData < SlackError; end
244
255
  class InvalidFormData < SlackError; end
245
256
  class InvalidGrantType < SlackError; end
246
257
  class InvalidGroupProvided < SlackError; end
@@ -250,6 +261,8 @@ module Slack
250
261
  class InvalidLink < SlackError; end
251
262
  class InvalidManifest < SlackError; end
252
263
  class InvalidMetadataFilterKeys < SlackError; end
264
+ class InvalidMetadataFormat < SlackError; end
265
+ class InvalidMetadataSchema < SlackError; end
253
266
  class InvalidName < SlackError; end
254
267
  class InvalidNameMaxlength < SlackError; end
255
268
  class InvalidNamePunctuation < SlackError; end
@@ -319,13 +332,16 @@ module Slack
319
332
  class LimitRequired < SlackError; end
320
333
  class LinkNotFound < SlackError; end
321
334
  class MalwareDetected < SlackError; end
335
+ class ManagedChannelNotSupported < SlackError; end
322
336
  class MemberAnalyticsDisabled < SlackError; end
323
337
  class MemberLimitExceeded < SlackError; end
324
338
  class MessageNotFound < SlackError; end
325
339
  class MessageTooLong < SlackError; end
326
340
  class MessagesTabDisabled < SlackError; end
341
+ class MetadataMustBeSentFromApp < SlackError; end
327
342
  class MetadataNotAvailable < SlackError; end
328
343
  class MetadataOnlyDoesNotSupportDate < SlackError; end
344
+ class MetadataTooLarge < SlackError; end
329
345
  class MethodDeprecated < SlackError; end
330
346
  class MethodNotSupportedForChannelType < SlackError; end
331
347
  class MigrationInProgress < SlackError; end
@@ -360,6 +376,7 @@ module Slack
360
376
  class NoAliasSelected < SlackError; end
361
377
  class NoBotUserForApp < SlackError; end
362
378
  class NoChannel < SlackError; end
379
+ class NoChannelMemberships < SlackError; end
363
380
  class NoDualBroadcastContentUpdate < SlackError; end
364
381
  class NoImageUploaded < SlackError; end
365
382
  class NoItemSpecified < SlackError; end
@@ -374,7 +391,6 @@ module Slack
374
391
  class NoTeamsToDisconnect < SlackError; end
375
392
  class NoText < SlackError; end
376
393
  class NoUser < SlackError; end
377
- class NoUserProvided < SlackError; end
378
394
  class NoUsersProvided < SlackError; end
379
395
  class NotAdmin < SlackError; end
380
396
  class NotAllowed < SlackError; end
@@ -401,6 +417,7 @@ module Slack
401
417
  class NotReactable < SlackError; end
402
418
  class NotStarred < SlackError; end
403
419
  class NotSupported < SlackError; end
420
+ class NotVisible < SlackError; end
404
421
  class OauthAuthorizationUrlMismatch < SlackError; end
405
422
  class OneOrMoreInvalidChannels < SlackError; end
406
423
  class OrgLevelEmailDisplayDisabled < SlackError; end
@@ -418,6 +435,7 @@ module Slack
418
435
  class PermissionDenied < SlackError; end
419
436
  class PlanUpgradeRequired < SlackError; end
420
437
  class PolicyNotFound < SlackError; end
438
+ class PostingToChannelDenied < SlackError; end
421
439
  class PostingToGeneralChannelDenied < SlackError; end
422
440
  class PreviewFeatureNotAvailable < SlackError; end
423
441
  class PrimaryUsergroupNotFound < SlackError; end
@@ -440,8 +458,8 @@ module Slack
440
458
  class RestrictedActionReadOnlyChannel < SlackError; end
441
459
  class RestrictedActionThreadLocked < SlackError; end
442
460
  class RestrictedActionThreadOnlyChannel < SlackError; end
461
+ class RestrictedTooMany < SlackError; end
443
462
  class RetentionOverrideNotAllowed < SlackError; end
444
- class RtmConnectRequired < SlackError; end
445
463
  class SentRecently < SlackError; end
446
464
  class ServiceUnavailable < SlackError; end
447
465
  class SessionExpired < SlackError; end
@@ -452,11 +470,13 @@ module Slack
452
470
  class SlackConnectClipSharingBlocked < SlackError; end
453
471
  class SlackConnectFileLinkSharingBlocked < SlackError; end
454
472
  class SlackConnectFileUploadSharingBlocked < SlackError; end
473
+ class SnippetTooLarge < SlackError; end
455
474
  class SnoozeEndFailed < SlackError; end
456
475
  class SnoozeFailed < SlackError; end
457
- class SnoozeNotActive < SlackError; end
458
476
  class SpecifyEnterpriseOrTeams < SlackError; end
477
+ class StorageLimitReached < SlackError; end
459
478
  class SubteamMaxUsersExceeded < SlackError; end
479
+ class SudoRequired < SlackError; end
460
480
  class TeamAccessNotGranted < SlackError; end
461
481
  class TeamAddedToOrg < SlackError; end
462
482
  class TeamIdOrOrgRequired < SlackError; end
@@ -496,11 +516,16 @@ module Slack
496
516
  class TriggerExpired < SlackError; end
497
517
  class TwoFactorSetupRequired < SlackError; end
498
518
  class UnableToLinkIdpGroupAndChannel < SlackError; end
519
+ class UnableToProcessPostRequest < SlackError; end
499
520
  class UnableToUnlinkIdpGroupAndChannel < SlackError; end
500
521
  class UnableToUpdateExistingSessions < SlackError; end
501
522
  class UnknownError < SlackError; end
502
523
  class UnknownMethod < SlackError; end
524
+ class UnknownSnippetType < SlackError; end
525
+ class UnknownSubtype < SlackError; end
503
526
  class UnknownType < SlackError; end
527
+ class UnsupportedActionDescribe < SlackError; end
528
+ class UnsupportedActionPut < SlackError; end
504
529
  class UnsupportedArguments < SlackError; end
505
530
  class UnsupportedContextType < SlackError; end
506
531
  class UnsupportedTeamType < SlackError; end
@@ -547,8 +572,10 @@ module Slack
547
572
  'already_processed' => AlreadyProcessed,
548
573
  'already_reacted' => AlreadyReacted,
549
574
  'already_starred' => AlreadyStarred,
575
+ 'alt_txt_too_large' => AltTxtTooLarge,
550
576
  'app_management_app_not_installed_on_org' => AppManagementAppNotInstalledOnOrg,
551
577
  'app_missing_action_url' => AppMissingActionUrl,
578
+ 'app_not_eligible' => AppNotEligible,
552
579
  'app_not_found' => AppNotFound,
553
580
  'app_restricted_org_wide' => AppRestrictedOrgWide,
554
581
  'approval_inactive' => ApprovalInactive,
@@ -569,6 +596,7 @@ module Slack
569
596
  'barrier_already_exists' => BarrierAlreadyExists,
570
597
  'barrier_not_found' => BarrierNotFound,
571
598
  'barriered_from_usergroups_not_found' => BarrieredFromUsergroupsNotFound,
599
+ 'block_mismatch' => BlockMismatch,
572
600
  'bot_not_found' => BotNotFound,
573
601
  'bot_user_required' => BotUserRequired,
574
602
  'bots_not_allowed' => BotsNotAllowed,
@@ -630,6 +658,7 @@ module Slack
630
658
  'channel_type_not_supported' => ChannelTypeNotSupported,
631
659
  'client_id_token_mismatch' => ClientIdTokenMismatch,
632
660
  'code_already_used' => CodeAlreadyUsed,
661
+ 'connected_team_passed_in_is_not_top_level_team' => ConnectedTeamPassedInIsNotTopLevelTeam,
633
662
  'connection_limit_exceeded' => ConnectionLimitExceeded,
634
663
  'connection_limit_exceeded_pending' => ConnectionLimitExceededPending,
635
664
  'could_not_archive_channel' => CouldNotArchiveChannel,
@@ -664,6 +693,7 @@ module Slack
664
693
  'email_taken' => EmailTaken,
665
694
  'emoji_limit_reached' => EmojiLimitReached,
666
695
  'emoji_not_found' => EmojiNotFound,
696
+ 'endpoint_unavailable' => EndpointUnavailable,
667
697
  'enterprise_is_restricted' => EnterpriseIsRestricted,
668
698
  'enterprise_not_found' => EnterpriseNotFound,
669
699
  'entity_not_found' => EntityNotFound,
@@ -681,6 +711,7 @@ module Slack
681
711
  'exchanged_trigger_id' => ExchangedTriggerId,
682
712
  'expired_trigger_id' => ExpiredTriggerId,
683
713
  'external_channel_migrating' => ExternalChannelMigrating,
714
+ 'external_team_not_connected_to_this_org' => ExternalTeamNotConnectedToThisOrg,
684
715
  'externally_shared_or_disconnected_channel' => ExternallySharedOrDisconnectedChannel,
685
716
  'fail_to_get_teams_for_restricted_user' => FailToGetTeamsForRestrictedUser,
686
717
  'failed_adding_collaborator' => FailedAddingCollaborator,
@@ -706,6 +737,7 @@ module Slack
706
737
  'failed_to_set_user_to_admin' => FailedToSetUserToAdmin,
707
738
  'failed_to_set_user_to_owner' => FailedToSetUserToOwner,
708
739
  'failed_to_set_user_to_regular' => FailedToSetUserToRegular,
740
+ 'failed_to_start_trial' => FailedToStartTrial,
709
741
  'failed_to_unlink_channel' => FailedToUnlinkChannel,
710
742
  'failed_to_unshare' => FailedToUnshare,
711
743
  'failed_to_validate_caller' => FailedToValidateCaller,
@@ -724,6 +756,9 @@ module Slack
724
756
  'file_not_shared' => FileNotShared,
725
757
  'file_not_yet_available' => FileNotYetAvailable,
726
758
  'file_under_review' => FileUnderReview,
759
+ 'file_update_failed' => FileUpdateFailed,
760
+ 'file_upload_size_restricted' => FileUploadSizeRestricted,
761
+ 'file_uploads_disabled' => FileUploadsDisabled,
727
762
  'forbidden_handle' => ForbiddenHandle,
728
763
  'forbidden_team' => ForbiddenTeam,
729
764
  'group_already_linked_to_channel' => GroupAlreadyLinkedToChannel,
@@ -769,6 +804,7 @@ module Slack
769
804
  'invalid_entity_id' => InvalidEntityId,
770
805
  'invalid_event_context' => InvalidEventContext,
771
806
  'invalid_external_id' => InvalidExternalId,
807
+ 'invalid_field_or_data' => InvalidFieldOrData,
772
808
  'invalid_form_data' => InvalidFormData,
773
809
  'invalid_grant_type' => InvalidGrantType,
774
810
  'invalid_group_provided' => InvalidGroupProvided,
@@ -778,6 +814,8 @@ module Slack
778
814
  'invalid_link' => InvalidLink,
779
815
  'invalid_manifest' => InvalidManifest,
780
816
  'invalid_metadata_filter_keys' => InvalidMetadataFilterKeys,
817
+ 'invalid_metadata_format' => InvalidMetadataFormat,
818
+ 'invalid_metadata_schema' => InvalidMetadataSchema,
781
819
  'invalid_name' => InvalidName,
782
820
  'invalid_name_maxlength' => InvalidNameMaxlength,
783
821
  'invalid_name_punctuation' => InvalidNamePunctuation,
@@ -847,13 +885,16 @@ module Slack
847
885
  'limit_required' => LimitRequired,
848
886
  'link_not_found' => LinkNotFound,
849
887
  'malware_detected' => MalwareDetected,
888
+ 'managed_channel_not_supported' => ManagedChannelNotSupported,
850
889
  'member_analytics_disabled' => MemberAnalyticsDisabled,
851
890
  'member_limit_exceeded' => MemberLimitExceeded,
852
891
  'message_not_found' => MessageNotFound,
853
892
  'message_too_long' => MessageTooLong,
854
893
  'messages_tab_disabled' => MessagesTabDisabled,
894
+ 'metadata_must_be_sent_from_app' => MetadataMustBeSentFromApp,
855
895
  'metadata_not_available' => MetadataNotAvailable,
856
896
  'metadata_only_does_not_support_date' => MetadataOnlyDoesNotSupportDate,
897
+ 'metadata_too_large' => MetadataTooLarge,
857
898
  'method_deprecated' => MethodDeprecated,
858
899
  'method_not_supported_for_channel_type' => MethodNotSupportedForChannelType,
859
900
  'migration_in_progress' => MigrationInProgress,
@@ -888,6 +929,7 @@ module Slack
888
929
  'no_alias_selected' => NoAliasSelected,
889
930
  'no_bot_user_for_app' => NoBotUserForApp,
890
931
  'no_channel' => NoChannel,
932
+ 'no_channel_memberships' => NoChannelMemberships,
891
933
  'no_dual_broadcast_content_update' => NoDualBroadcastContentUpdate,
892
934
  'no_image_uploaded' => NoImageUploaded,
893
935
  'no_item_specified' => NoItemSpecified,
@@ -902,7 +944,6 @@ module Slack
902
944
  'no_teams_to_disconnect' => NoTeamsToDisconnect,
903
945
  'no_text' => NoText,
904
946
  'no_user' => NoUser,
905
- 'no_user_provided' => NoUserProvided,
906
947
  'no_users_provided' => NoUsersProvided,
907
948
  'not_admin' => NotAdmin,
908
949
  'not_allowed' => NotAllowed,
@@ -929,6 +970,7 @@ module Slack
929
970
  'not_reactable' => NotReactable,
930
971
  'not_starred' => NotStarred,
931
972
  'not_supported' => NotSupported,
973
+ 'not_visible' => NotVisible,
932
974
  'oauth_authorization_url_mismatch' => OauthAuthorizationUrlMismatch,
933
975
  'one_or_more_invalid_channels' => OneOrMoreInvalidChannels,
934
976
  'org_level_email_display_disabled' => OrgLevelEmailDisplayDisabled,
@@ -946,6 +988,7 @@ module Slack
946
988
  'permission_denied' => PermissionDenied,
947
989
  'plan_upgrade_required' => PlanUpgradeRequired,
948
990
  'policy_not_found' => PolicyNotFound,
991
+ 'posting_to_channel_denied' => PostingToChannelDenied,
949
992
  'posting_to_general_channel_denied' => PostingToGeneralChannelDenied,
950
993
  'preview_feature_not_available' => PreviewFeatureNotAvailable,
951
994
  'primary_usergroup_not_found' => PrimaryUsergroupNotFound,
@@ -968,8 +1011,8 @@ module Slack
968
1011
  'restricted_action_read_only_channel' => RestrictedActionReadOnlyChannel,
969
1012
  'restricted_action_thread_locked' => RestrictedActionThreadLocked,
970
1013
  'restricted_action_thread_only_channel' => RestrictedActionThreadOnlyChannel,
1014
+ 'restricted_too_many' => RestrictedTooMany,
971
1015
  'retention_override_not_allowed' => RetentionOverrideNotAllowed,
972
- 'rtm_connect_required' => RtmConnectRequired,
973
1016
  'sent_recently' => SentRecently,
974
1017
  'service_unavailable' => ServiceUnavailable,
975
1018
  'session_expired' => SessionExpired,
@@ -980,11 +1023,13 @@ module Slack
980
1023
  'slack_connect_clip_sharing_blocked' => SlackConnectClipSharingBlocked,
981
1024
  'slack_connect_file_link_sharing_blocked' => SlackConnectFileLinkSharingBlocked,
982
1025
  'slack_connect_file_upload_sharing_blocked' => SlackConnectFileUploadSharingBlocked,
1026
+ 'snippet_too_large' => SnippetTooLarge,
983
1027
  'snooze_end_failed' => SnoozeEndFailed,
984
1028
  'snooze_failed' => SnoozeFailed,
985
- 'snooze_not_active' => SnoozeNotActive,
986
1029
  'specify_enterprise_or_teams' => SpecifyEnterpriseOrTeams,
1030
+ 'storage_limit_reached' => StorageLimitReached,
987
1031
  'subteam_max_users_exceeded' => SubteamMaxUsersExceeded,
1032
+ 'sudo_required' => SudoRequired,
988
1033
  'team_access_not_granted' => TeamAccessNotGranted,
989
1034
  'team_added_to_org' => TeamAddedToOrg,
990
1035
  'team_id_or_org_required' => TeamIdOrOrgRequired,
@@ -1024,11 +1069,16 @@ module Slack
1024
1069
  'trigger_expired' => TriggerExpired,
1025
1070
  'two_factor_setup_required' => TwoFactorSetupRequired,
1026
1071
  'unable_to_link_idp_group_and_channel' => UnableToLinkIdpGroupAndChannel,
1072
+ 'unable_to_process_post_request' => UnableToProcessPostRequest,
1027
1073
  'unable_to_unlink_idp_group_and_channel' => UnableToUnlinkIdpGroupAndChannel,
1028
1074
  'unable_to_update_existing_sessions' => UnableToUpdateExistingSessions,
1029
1075
  'unknown_error' => UnknownError,
1030
1076
  'unknown_method' => UnknownMethod,
1077
+ 'unknown_snippet_type' => UnknownSnippetType,
1078
+ 'unknown_subtype' => UnknownSubtype,
1031
1079
  'unknown_type' => UnknownType,
1080
+ 'unsupported_action_describe' => UnsupportedActionDescribe,
1081
+ 'unsupported_action_put' => UnsupportedActionPut,
1032
1082
  'unsupported_arguments' => UnsupportedArguments,
1033
1083
  'unsupported_context_type' => UnsupportedContextType,
1034
1084
  'unsupported_team_type' => UnsupportedTeamType,
@@ -14,7 +14,7 @@ module Slack
14
14
  # Channel to get ID for, prefixed with #.
15
15
  def conversations_id(options = {})
16
16
  name = options[:channel]
17
- throw ArgumentError.new('Required arguments :channel missing') if name.nil?
17
+ raise ArgumentError, 'Required arguments :channel missing' if name.nil?
18
18
 
19
19
  id_for :channel, name, '#', :conversations_list, :channels, 'channel_not_found'
20
20
  end
@@ -14,7 +14,7 @@ module Slack
14
14
  # User to get ID for, prefixed with '@'.
15
15
  def users_id(options = {})
16
16
  name = options[:user]
17
- throw ArgumentError.new('Required arguments :user missing') if name.nil?
17
+ raise ArgumentError, 'Required arguments :user missing' if name.nil?
18
18
 
19
19
  id_for :user, name, '@', :users_list, :members, 'user_not_found'
20
20
  end
@@ -14,7 +14,8 @@ if defined?(Picky)
14
14
  # Free-formed text to search for.
15
15
  def users_search(options = {})
16
16
  query = options[:user]
17
- throw ArgumentError.new('Required arguments :user missing') if query.nil?
17
+ raise ArgumentError, 'Required arguments :user missing' if query.nil?
18
+
18
19
  index = Picky::Index.new(:users) do
19
20
  category :name
20
21
  category :first_name
@@ -1,15 +1,14 @@
1
1
  diff --git a/lib/slack/web/api/endpoints/chat.rb b/lib/slack/web/api/endpoints/chat.rb
2
- index d090ae2..50186d5 100644
2
+ index 701cd1e..07acc40 100644
3
3
  --- a/lib/slack/web/api/endpoints/chat.rb
4
4
  +++ b/lib/slack/web/api/endpoints/chat.rb
5
- @@ -121,10 +121,22 @@ module Slack
6
- # @see https://api.slack.com/methods/chat.postEphemeral
5
+ @@ -122,9 +122,21 @@ module Slack
7
6
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postEphemeral.json
8
7
  def chat_postEphemeral(options = {})
9
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
10
- - throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
11
- + throw ArgumentError.new('Required arguments :text, :attachments or :blocks missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
12
- throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
8
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
9
+ - raise ArgumentError, 'Required arguments :text missing' if options[:text].nil?
10
+ + raise ArgumentError, 'Required arguments :text, :attachments or :blocks missing' if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
11
+ raise ArgumentError, 'Required arguments :user missing' if options[:user].nil?
13
12
  options = options.merge(user: users_id(options)['user']['id']) if options[:user]
14
13
  + # attachments must be passed as an encoded JSON string
15
14
  + if options.key?(:attachments)
@@ -26,11 +25,11 @@ index d090ae2..50186d5 100644
26
25
  post('chat.postEphemeral', options)
27
26
  end
28
27
 
29
- @@ -168,6 +179,19 @@ module Slack
28
+ @@ -167,6 +179,19 @@ module Slack
30
29
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postMessage.json
31
30
  def chat_postMessage(options = {})
32
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
33
- + throw ArgumentError.new('Required arguments :text, :attachments or :blocks missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
31
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
32
+ + raise ArgumentError, 'Required arguments :text, :attachments or :blocks missing' if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
34
33
  + # attachments must be passed as an encoded JSON string
35
34
  + if options.key?(:attachments)
36
35
  + attachments = options[:attachments]
@@ -46,12 +45,12 @@ index d090ae2..50186d5 100644
46
45
  post('chat.postMessage', options)
47
46
  end
48
47
 
49
- @@ -257,8 +281,21 @@ module Slack
48
+ @@ -268,8 +293,21 @@ module Slack
50
49
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.update.json
51
50
  def chat_update(options = {})
52
- throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
53
- + throw ArgumentError.new('Required arguments :text, :attachments, :blocks or :reply_broadcast missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil? && options[:reply_broadcast].nil?
54
- throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
51
+ raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
52
+ + raise ArgumentError, 'Required arguments :text, :attachments, :blocks or :reply_broadcast missing' if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil? && options[:reply_broadcast].nil?
53
+ raise ArgumentError, 'Required arguments :ts missing' if options[:ts].nil?
55
54
  options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
56
55
  + # attachments must be passed as an encoded JSON string
57
56
  + if options.key?(:attachments)