slack-ruby-client 0.13.0 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +24 -5
- data/.rubocop_todo.yml +100 -54
- data/.travis.yml +4 -8
- data/CHANGELOG.md +118 -35
- data/CONTRIBUTING.md +17 -6
- data/Dangerfile +2 -0
- data/Gemfile +10 -5
- data/LICENSE.md +1 -1
- data/README.md +185 -48
- data/Rakefile +2 -1
- data/UPGRADING.md +30 -2
- data/bin/commands.rb +32 -0
- data/bin/commands/admin_analytics.rb +16 -0
- data/bin/commands/admin_apps.rb +40 -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_barriers.rb +47 -0
- data/bin/commands/admin_conversations.rb +159 -0
- data/bin/commands/admin_conversations_ekm.rb +17 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
- data/bin/commands/admin_conversations_whitelist.rb +37 -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_usergroups.rb +48 -0
- data/bin/commands/admin_users.rb +97 -0
- data/bin/commands/admin_users_session.rb +38 -0
- data/bin/commands/api.rb +1 -1
- data/bin/commands/apps.rb +15 -0
- data/bin/commands/apps_connections.rb +13 -0
- data/bin/commands/apps_event_authorizations.rb +16 -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/auth_teams.rb +16 -0
- data/bin/commands/bots.rb +2 -0
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +1 -153
- data/bin/commands/chat.rb +51 -10
- data/bin/commands/chat_scheduledMessages.rb +19 -0
- data/bin/commands/conversations.rb +16 -3
- data/bin/commands/dialog.rb +1 -0
- data/bin/commands/dnd.rb +5 -2
- data/bin/commands/emoji.rb +1 -0
- data/bin/commands/files.rb +8 -17
- data/bin/commands/files_comments.rb +1 -21
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +1 -161
- data/bin/commands/im.rb +1 -62
- data/bin/commands/migration.rb +2 -0
- data/bin/commands/mpim.rb +1 -60
- data/bin/commands/oauth.rb +2 -1
- data/bin/commands/oauth_v2.rb +17 -0
- data/bin/commands/pins.rb +1 -4
- data/bin/commands/reactions.rb +3 -3
- data/bin/commands/reminders.rb +1 -0
- data/bin/commands/rtm.rb +1 -0
- data/bin/commands/search.rb +4 -0
- data/bin/commands/stars.rb +1 -0
- data/bin/commands/team.rb +5 -0
- data/bin/commands/team_profile.rb +1 -0
- data/bin/commands/usergroups.rb +6 -0
- data/bin/commands/usergroups_users.rb +3 -0
- data/bin/commands/users.rb +5 -3
- data/bin/commands/users_admin.rb +1 -0
- data/bin/commands/users_prefs.rb +1 -0
- data/bin/commands/users_profile.rb +6 -5
- data/bin/commands/views.rb +48 -0
- data/bin/commands/workflows.rb +38 -0
- data/bin/slack +2 -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 +1 -0
- data/examples/hi_real_time_async_async/hi.rb +6 -2
- 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 +10 -4
- 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 +70 -0
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +1 -0
- data/lib/slack/messages/message.rb +1 -4
- 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 +98 -28
- data/lib/slack/real_time/concurrency.rb +1 -2
- data/lib/slack/real_time/concurrency/async.rb +79 -6
- data/lib/slack/real_time/config.rb +6 -10
- data/lib/slack/real_time/models.rb +1 -0
- data/lib/slack/real_time/models/base.rb +1 -4
- 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 +44 -15
- data/lib/slack/real_time/stores.rb +1 -0
- data/lib/slack/real_time/stores/base.rb +4 -1
- 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 +64 -0
- data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +62 -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_barriers.rb +82 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +246 -0
- data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -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_usergroups.rb +77 -0
- data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
- data/lib/slack/web/api/endpoints/api.rb +1 -2
- data/lib/slack/web/api/endpoints/apps.rb +27 -0
- data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -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/auth_teams.rb +33 -0
- data/lib/slack/web/api/endpoints/bots.rb +3 -0
- data/lib/slack/web/api/endpoints/calls.rb +83 -0
- data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
- data/lib/slack/web/api/endpoints/channels.rb +2 -243
- data/lib/slack/web/api/endpoints/chat.rb +112 -21
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
- data/lib/slack/web/api/endpoints/conversations.rb +40 -19
- data/lib/slack/web/api/endpoints/dialog.rb +1 -0
- data/lib/slack/web/api/endpoints/dnd.rb +7 -1
- data/lib/slack/web/api/endpoints/emoji.rb +1 -0
- data/lib/slack/web/api/endpoints/files.rb +10 -17
- 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 -253
- data/lib/slack/web/api/endpoints/im.rb +1 -101
- data/lib/slack/web/api/endpoints/migration.rb +3 -0
- data/lib/slack/web/api/endpoints/mpim.rb +1 -96
- data/lib/slack/web/api/endpoints/oauth.rb +2 -4
- data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
- data/lib/slack/web/api/endpoints/pins.rb +4 -11
- data/lib/slack/web/api/endpoints/reactions.rb +10 -9
- 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 +7 -0
- data/lib/slack/web/api/endpoints/stars.rb +3 -2
- data/lib/slack/web/api/endpoints/team.rb +9 -0
- data/lib/slack/web/api/endpoints/team_profile.rb +1 -0
- data/lib/slack/web/api/endpoints/usergroups.rb +11 -0
- data/lib/slack/web/api/endpoints/usergroups_users.rb +5 -0
- data/lib/slack/web/api/endpoints/users.rb +8 -7
- 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 +4 -3
- data/lib/slack/web/api/endpoints/views.rb +97 -0
- data/lib/slack/web/api/endpoints/workflows.rb +61 -0
- data/lib/slack/web/api/error.rb +1 -0
- data/lib/slack/web/api/errors.rb +848 -0
- data/lib/slack/web/api/errors/internal_error.rb +14 -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 +2 -0
- data/lib/slack/web/api/mixins/channels.id.rb +2 -3
- data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
- data/lib/slack/web/api/mixins/groups.id.rb +2 -3
- data/lib/slack/web/api/mixins/ids.id.rb +3 -2
- data/lib/slack/web/api/mixins/users.id.rb +2 -3
- data/lib/slack/web/api/mixins/users.search.rb +1 -0
- data/lib/slack/web/api/patches/chat.1.patch +71 -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 +2 -0
- data/lib/slack/web/api/templates/errors.erb +20 -0
- data/lib/slack/web/api/templates/method.erb +5 -1
- data/lib/slack/web/api/templates/method_spec.erb +2 -1
- data/lib/slack/web/client.rb +2 -1
- data/lib/slack/web/config.rb +3 -0
- data/lib/slack/web/faraday/connection.rb +24 -20
- data/lib/slack/web/faraday/request.rb +1 -0
- data/lib/slack/web/faraday/response/raise_error.rb +21 -6
- data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
- data/lib/slack/web/pagination/cursor.rb +6 -2
- 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 +39 -10
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +8 -4
- data/spec/fixtures/slack/web/channels_info.yml +108 -15
- data/spec/fixtures/slack/web/{groups_info.yml → conversations_info.yml} +4 -4
- data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
- data/spec/fixtures/slack/web/views_open_error.yml +76 -0
- data/spec/integration/integration_spec.rb +116 -49
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +33 -0
- data/spec/slack/events/request_spec.rb +184 -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 +228 -30
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
- data/spec/slack/real_time/concurrency/with_concurrency_spec.rb +10 -0
- data/spec/slack/real_time/concurrency/without_concurrency_spec.rb +10 -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 +2 -1
- data/spec/slack/real_time/rtm_start_spec.rb +2 -1
- 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_analytics_spec.rb +13 -0
- 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 +13 -0
- data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
- data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +93 -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_usergroups_spec.rb +37 -0
- data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
- data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -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/auth_teams_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
- data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/conversations_spec.rb +21 -12
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +112 -36
- data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
- 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 +3 -21
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/im_spec.rb +1 -31
- data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -31
- data/spec/slack/web/api/endpoints/oauth_spec.rb +4 -14
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
- data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
- 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 +3 -2
- 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/workflows_spec.rb +26 -0
- data/spec/slack/web/api/error_spec.rb +4 -2
- 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/conversations_list_spec.rb +21 -0
- data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
- 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 +166 -18
- data/spec/slack/web/faraday/response/raise_error_spec.rb +47 -12
- 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 +5 -0
- metadata +226 -52
- data/examples/hi_real_time/Gemfile +0 -5
- data/examples/hi_real_time/hi.gif +0 -0
- data/examples/hi_real_time/hi.rb +0 -37
- data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
- data/examples/hi_real_time_async_celluloid/Procfile +0 -2
- data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
- data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
- data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
- data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -103
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -66
- data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
- data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
- data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
- data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
- data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
- data/screenshots/register-bot.png +0 -0
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -106
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
- data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
@@ -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
|
@@ -18,7 +19,7 @@ module Slack
|
|
18
19
|
def chat_command(options = {})
|
19
20
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
20
21
|
throw ArgumentError.new('Required arguments :command missing') if options[:command].nil?
|
21
|
-
options = options.merge(channel:
|
22
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
22
23
|
logger.warn('The chat.command method is undocumented.')
|
23
24
|
post('chat.command', options)
|
24
25
|
end
|
@@ -37,10 +38,28 @@ module Slack
|
|
37
38
|
def chat_delete(options = {})
|
38
39
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
39
40
|
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
40
|
-
options = options.merge(channel:
|
41
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
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: conversations_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
|
#
|
@@ -53,7 +72,7 @@ module Slack
|
|
53
72
|
def chat_getPermalink(options = {})
|
54
73
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
55
74
|
throw ArgumentError.new('Required arguments :message_ts missing') if options[:message_ts].nil?
|
56
|
-
options = options.merge(channel:
|
75
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
57
76
|
post('chat.getPermalink', options)
|
58
77
|
end
|
59
78
|
|
@@ -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
|
|
@@ -110,12 +145,14 @@ module Slack
|
|
110
145
|
#
|
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
|
-
# @option options [Object] :text
|
114
|
-
# Text of the message to send. See below for an explanation of formatting. This field is usually required, unless you're providing only attachments instead. Provide no more than 40,000 characters or risk truncation.
|
115
148
|
# @option options [Object] :as_user
|
116
149
|
# Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See authorship below.
|
117
150
|
# @option options [Object] :attachments
|
118
151
|
# A JSON-based array of structured attachments, presented as a URL-encoded string.
|
152
|
+
# @option options [Object] :blocks
|
153
|
+
# A JSON-based array of structured blocks, presented as a URL-encoded string.
|
154
|
+
# @option options [Object] :draft_id
|
155
|
+
# The id of the draft associated with the message.
|
119
156
|
# @option options [Object] :icon_emoji
|
120
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.
|
121
158
|
# @option options [Object] :icon_url
|
@@ -128,6 +165,8 @@ module Slack
|
|
128
165
|
# Change how messages are treated. Defaults to none. See below.
|
129
166
|
# @option options [Object] :reply_broadcast
|
130
167
|
# Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.
|
168
|
+
# @option options [Object] :text
|
169
|
+
# How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
|
131
170
|
# @option options [Object] :thread_ts
|
132
171
|
# Provide another message's ts value to make this message a reply. Avoid using a reply's ts value; use its parent instead.
|
133
172
|
# @option options [Object] :unfurl_links
|
@@ -140,16 +179,58 @@ module Slack
|
|
140
179
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postMessage.json
|
141
180
|
def chat_postMessage(options = {})
|
142
181
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
143
|
-
throw ArgumentError.new('Required arguments :text or :
|
182
|
+
throw ArgumentError.new('Required arguments :text, :attachments or :blocks missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
|
144
183
|
# attachments must be passed as an encoded JSON string
|
145
184
|
if options.key?(:attachments)
|
146
185
|
attachments = options[:attachments]
|
147
186
|
attachments = JSON.dump(attachments) unless attachments.is_a?(String)
|
148
187
|
options = options.merge(attachments: attachments)
|
149
188
|
end
|
189
|
+
# blocks must be passed as an encoded JSON string
|
190
|
+
if options.key?(:blocks)
|
191
|
+
blocks = options[:blocks]
|
192
|
+
blocks = JSON.dump(blocks) unless blocks.is_a?(String)
|
193
|
+
options = options.merge(blocks: blocks)
|
194
|
+
end
|
150
195
|
post('chat.postMessage', options)
|
151
196
|
end
|
152
197
|
|
198
|
+
#
|
199
|
+
# Schedules a message to be sent to a channel.
|
200
|
+
#
|
201
|
+
# @option options [channel] :channel
|
202
|
+
# Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name. See below for more details.
|
203
|
+
# @option options [Object] :post_at
|
204
|
+
# Unix EPOCH timestamp of time in future to send the message.
|
205
|
+
# @option options [Object] :text
|
206
|
+
# How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
|
207
|
+
# @option options [Object] :as_user
|
208
|
+
# Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See chat.postMessage.
|
209
|
+
# @option options [Object] :attachments
|
210
|
+
# A JSON-based array of structured attachments, presented as a URL-encoded string.
|
211
|
+
# @option options [Object] :blocks
|
212
|
+
# A JSON-based array of structured blocks, presented as a URL-encoded string.
|
213
|
+
# @option options [Object] :link_names
|
214
|
+
# Find and link channel names and usernames.
|
215
|
+
# @option options [Object] :parse
|
216
|
+
# Change how messages are treated. Defaults to none. See chat.postMessage.
|
217
|
+
# @option options [Object] :reply_broadcast
|
218
|
+
# Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.
|
219
|
+
# @option options [Object] :thread_ts
|
220
|
+
# Provide another message's ts value to make this message a reply. Avoid using a reply's ts value; use its parent instead.
|
221
|
+
# @option options [Object] :unfurl_links
|
222
|
+
# Pass true to enable unfurling of primarily text-based content.
|
223
|
+
# @option options [Object] :unfurl_media
|
224
|
+
# Pass false to disable unfurling of media content.
|
225
|
+
# @see https://api.slack.com/methods/chat.scheduleMessage
|
226
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.scheduleMessage.json
|
227
|
+
def chat_scheduleMessage(options = {})
|
228
|
+
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
229
|
+
throw ArgumentError.new('Required arguments :post_at missing') if options[:post_at].nil?
|
230
|
+
throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
|
231
|
+
post('chat.scheduleMessage', options)
|
232
|
+
end
|
233
|
+
|
153
234
|
#
|
154
235
|
# Provide custom unfurl behavior for user-posted URLs
|
155
236
|
#
|
@@ -158,9 +239,11 @@ module Slack
|
|
158
239
|
# @option options [timestamp] :ts
|
159
240
|
# Timestamp of the message to add unfurl behavior to.
|
160
241
|
# @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.
|
242
|
+
# URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments.
|
243
|
+
# @option options [Object] :user_auth_blocks
|
244
|
+
# Provide a JSON based array of structured blocks presented as URL-encoded string to send as an ephemeral message to the user as invitation to authenticate further and enable full unfurling behavior.
|
162
245
|
# @option options [Object] :user_auth_message
|
163
|
-
# Provide a simply-formatted string to send as an ephemeral message to the user as invitation to authenticate further and enable full unfurling behavior.
|
246
|
+
# Provide a simply-formatted string to send as an ephemeral message to the user as invitation to authenticate further and enable full unfurling behavior. Provides two buttons, Not now or Never ask me again.
|
164
247
|
# @option options [Object] :user_auth_required
|
165
248
|
# Set to true or 1 to indicate the user must install your Slack app to trigger unfurls for this domain.
|
166
249
|
# @option options [Object] :user_auth_url
|
@@ -171,7 +254,7 @@ module Slack
|
|
171
254
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
172
255
|
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
173
256
|
throw ArgumentError.new('Required arguments :unfurls missing') if options[:unfurls].nil?
|
174
|
-
options = options.merge(channel:
|
257
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
175
258
|
post('chat.unfurl', options)
|
176
259
|
end
|
177
260
|
|
@@ -180,31 +263,39 @@ module Slack
|
|
180
263
|
#
|
181
264
|
# @option options [channel] :channel
|
182
265
|
# Channel containing the message to be updated.
|
183
|
-
# @option options [Object] :text
|
184
|
-
# New text for the message, using the default formatting rules. It's not required when presenting attachments.
|
185
266
|
# @option options [timestamp] :ts
|
186
267
|
# Timestamp of the message to be updated.
|
187
268
|
# @option options [Object] :as_user
|
188
269
|
# Pass true to update the message as the authed user. Bot users in this context are considered authed users.
|
189
270
|
# @option options [Object] :attachments
|
190
|
-
# A JSON-based array of structured attachments, presented as a URL-encoded string. This field is required when not presenting text.
|
271
|
+
# A JSON-based array of structured attachments, presented as a URL-encoded string. This field is required when not presenting text. If you don't include this field, the message's previous attachments will be retained. To remove previous attachments, include an empty array for this field.
|
272
|
+
# @option options [Object] :blocks
|
273
|
+
# A JSON-based array of structured blocks, presented as a URL-encoded string. If you don't include this field, the message's previous blocks will be retained. To remove previous blocks, include an empty array for this field.
|
191
274
|
# @option options [Object] :link_names
|
192
|
-
# Find and link channel names and usernames. Defaults to none.
|
275
|
+
# Find and link channel names and usernames. Defaults to none. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, none.
|
193
276
|
# @option options [Object] :parse
|
194
|
-
# Change how messages are treated. Defaults to client, unlike chat.postMessage.
|
277
|
+
# Change how messages are treated. Defaults to client, unlike chat.postMessage. Accepts either none or full. If you do not specify a value for this field, the original value set for the message will be overwritten with the default, client.
|
278
|
+
# @option options [Object] :text
|
279
|
+
# New text for the message, using the default formatting rules. It's not required when presenting blocks or attachments.
|
195
280
|
# @see https://api.slack.com/methods/chat.update
|
196
281
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.update.json
|
197
282
|
def chat_update(options = {})
|
198
283
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
199
|
-
throw ArgumentError.new('Required arguments :text or :
|
284
|
+
throw ArgumentError.new('Required arguments :text, :attachments or :blocks missing') if options[:text].nil? && options[:attachments].nil? && options[:blocks].nil?
|
200
285
|
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
201
|
-
options = options.merge(channel:
|
286
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
202
287
|
# attachments must be passed as an encoded JSON string
|
203
288
|
if options.key?(:attachments)
|
204
289
|
attachments = options[:attachments]
|
205
290
|
attachments = JSON.dump(attachments) unless attachments.is_a?(String)
|
206
291
|
options = options.merge(attachments: attachments)
|
207
292
|
end
|
293
|
+
# blocks must be passed as an encoded JSON string
|
294
|
+
if options.key?(:blocks)
|
295
|
+
blocks = options[:blocks]
|
296
|
+
blocks = JSON.dump(blocks) unless blocks.is_a?(String)
|
297
|
+
options = options.merge(blocks: blocks)
|
298
|
+
end
|
208
299
|
post('chat.update', options)
|
209
300
|
end
|
210
301
|
end
|
@@ -0,0 +1,40 @@
|
|
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
|
+
# @option options [Object] :team_id
|
23
|
+
# encoded team id to list channels in, required if org token is used.
|
24
|
+
# @see https://api.slack.com/methods/chat.scheduledMessages.list
|
25
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat.scheduledMessages/chat.scheduledMessages.list.json
|
26
|
+
def chat_scheduledMessages_list(options = {})
|
27
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
28
|
+
if block_given?
|
29
|
+
Pagination::Cursor.new(self, :chat_scheduledMessages_list, options).each do |page|
|
30
|
+
yield page
|
31
|
+
end
|
32
|
+
else
|
33
|
+
post('chat.scheduledMessages.list', options)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
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
|
@@ -14,7 +15,7 @@ module Slack
|
|
14
15
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.archive.json
|
15
16
|
def conversations_archive(options = {})
|
16
17
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
17
|
-
options = options.merge(channel:
|
18
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
18
19
|
post('conversations.archive', options)
|
19
20
|
end
|
20
21
|
|
@@ -27,7 +28,7 @@ module Slack
|
|
27
28
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.close.json
|
28
29
|
def conversations_close(options = {})
|
29
30
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
30
|
-
options = options.merge(channel:
|
31
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
31
32
|
post('conversations.close', options)
|
32
33
|
end
|
33
34
|
|
@@ -38,8 +39,8 @@ module Slack
|
|
38
39
|
# Name of the public or private channel to create.
|
39
40
|
# @option options [Object] :is_private
|
40
41
|
# Create a private channel instead of a public one.
|
41
|
-
# @option options [Object] :
|
42
|
-
#
|
42
|
+
# @option options [Object] :team_id
|
43
|
+
# encoded team id to create the channel in, required if org token is used.
|
43
44
|
# @see https://api.slack.com/methods/conversations.create
|
44
45
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.create.json
|
45
46
|
def conversations_create(options = {})
|
@@ -66,7 +67,7 @@ module Slack
|
|
66
67
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.history.json
|
67
68
|
def conversations_history(options = {})
|
68
69
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
69
|
-
options = options.merge(channel:
|
70
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
70
71
|
if block_given?
|
71
72
|
Pagination::Cursor.new(self, :conversations_history, options).each do |page|
|
72
73
|
yield page
|
@@ -83,11 +84,13 @@ 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 = {})
|
89
92
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
90
|
-
options = options.merge(channel:
|
93
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
91
94
|
post('conversations.info', options)
|
92
95
|
end
|
93
96
|
|
@@ -97,13 +100,13 @@ 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 = {})
|
104
107
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
105
108
|
throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
|
106
|
-
options = options.merge(channel:
|
109
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
107
110
|
post('conversations.invite', options)
|
108
111
|
end
|
109
112
|
|
@@ -116,7 +119,7 @@ module Slack
|
|
116
119
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.join.json
|
117
120
|
def conversations_join(options = {})
|
118
121
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
119
|
-
options = options.merge(channel:
|
122
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
120
123
|
post('conversations.join', options)
|
121
124
|
end
|
122
125
|
|
@@ -132,7 +135,7 @@ module Slack
|
|
132
135
|
def conversations_kick(options = {})
|
133
136
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
134
137
|
throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
|
135
|
-
options = options.merge(channel:
|
138
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
136
139
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
137
140
|
post('conversations.kick', options)
|
138
141
|
end
|
@@ -146,7 +149,7 @@ module Slack
|
|
146
149
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.leave.json
|
147
150
|
def conversations_leave(options = {})
|
148
151
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
149
|
-
options = options.merge(channel:
|
152
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
150
153
|
post('conversations.leave', options)
|
151
154
|
end
|
152
155
|
|
@@ -159,6 +162,8 @@ module Slack
|
|
159
162
|
# Set to true to exclude archived channels from the list.
|
160
163
|
# @option options [Object] :limit
|
161
164
|
# 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. Must be an integer no larger than 1000.
|
165
|
+
# @option options [Object] :team_id
|
166
|
+
# encoded team id to list channels in, required if token belongs to org-wide app.
|
162
167
|
# @option options [Object] :types
|
163
168
|
# Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.
|
164
169
|
# @see https://api.slack.com/methods/conversations.list
|
@@ -173,6 +178,22 @@ module Slack
|
|
173
178
|
end
|
174
179
|
end
|
175
180
|
|
181
|
+
#
|
182
|
+
# Sets the read cursor in a channel.
|
183
|
+
#
|
184
|
+
# @option options [channel] :channel
|
185
|
+
# Channel or conversation to set the read cursor for.
|
186
|
+
# @option options [timestamp] :ts
|
187
|
+
# Unique identifier of message you want marked as most recently seen in this conversation.
|
188
|
+
# @see https://api.slack.com/methods/conversations.mark
|
189
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.mark.json
|
190
|
+
def conversations_mark(options = {})
|
191
|
+
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
192
|
+
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
193
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
194
|
+
post('conversations.mark', options)
|
195
|
+
end
|
196
|
+
|
176
197
|
#
|
177
198
|
# Retrieve members of a conversation.
|
178
199
|
#
|
@@ -186,7 +207,7 @@ module Slack
|
|
186
207
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.members.json
|
187
208
|
def conversations_members(options = {})
|
188
209
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
189
|
-
options = options.merge(channel:
|
210
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
190
211
|
if block_given?
|
191
212
|
Pagination::Cursor.new(self, :conversations_members, options).each do |page|
|
192
213
|
yield page
|
@@ -208,7 +229,7 @@ module Slack
|
|
208
229
|
# @see https://api.slack.com/methods/conversations.open
|
209
230
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.open.json
|
210
231
|
def conversations_open(options = {})
|
211
|
-
options = options.merge(channel:
|
232
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
212
233
|
post('conversations.open', options)
|
213
234
|
end
|
214
235
|
|
@@ -224,7 +245,7 @@ module Slack
|
|
224
245
|
def conversations_rename(options = {})
|
225
246
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
226
247
|
throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
|
227
|
-
options = options.merge(channel:
|
248
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
228
249
|
post('conversations.rename', options)
|
229
250
|
end
|
230
251
|
|
@@ -234,7 +255,7 @@ module Slack
|
|
234
255
|
# @option options [channel] :channel
|
235
256
|
# Conversation ID to fetch thread from.
|
236
257
|
# @option options [timestamp] :ts
|
237
|
-
# Unique identifier of a thread's parent message.
|
258
|
+
# Unique identifier of either a thread's parent message or a message in the thread. ts must be the timestamp of an existing message with 0 or more replies. If there are no replies then just the single message referenced by ts will return - it is just an ordinary, unthreaded message.
|
238
259
|
# @option options [Object] :cursor
|
239
260
|
# 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.
|
240
261
|
# @option options [Object] :inclusive
|
@@ -250,7 +271,7 @@ module Slack
|
|
250
271
|
def conversations_replies(options = {})
|
251
272
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
252
273
|
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
253
|
-
options = options.merge(channel:
|
274
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
254
275
|
if block_given?
|
255
276
|
Pagination::Cursor.new(self, :conversations_replies, options).each do |page|
|
256
277
|
yield page
|
@@ -272,7 +293,7 @@ module Slack
|
|
272
293
|
def conversations_setPurpose(options = {})
|
273
294
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
274
295
|
throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
|
275
|
-
options = options.merge(channel:
|
296
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
276
297
|
post('conversations.setPurpose', options)
|
277
298
|
end
|
278
299
|
|
@@ -288,7 +309,7 @@ module Slack
|
|
288
309
|
def conversations_setTopic(options = {})
|
289
310
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
290
311
|
throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
|
291
|
-
options = options.merge(channel:
|
312
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
292
313
|
post('conversations.setTopic', options)
|
293
314
|
end
|
294
315
|
|
@@ -301,7 +322,7 @@ module Slack
|
|
301
322
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/conversations/conversations.unarchive.json
|
302
323
|
def conversations_unarchive(options = {})
|
303
324
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
304
|
-
options = options.merge(channel:
|
325
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
305
326
|
post('conversations.unarchive', options)
|
306
327
|
end
|
307
328
|
end
|