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