slack-ruby-client 0.11.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.coveralls.yml +2 -0
- data/.github/FUNDING.yml +2 -0
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/integration_test.yml +45 -0
- data/.github/workflows/lint.yml +14 -0
- data/.github/workflows/pr_lint.yml +21 -0
- data/.github/workflows/test.yml +56 -0
- data/.github/workflows/update_api.yml +81 -0
- data/.gitignore +7 -3
- data/.rubocop.yml +40 -2
- data/.rubocop_todo.yml +209 -55
- data/.ruby-version +1 -0
- data/CHANGELOG.md +257 -30
- data/CONTRIBUTING.md +44 -29
- data/Dangerfile +2 -0
- data/Gemfile +28 -6
- data/Gemfile.danger +6 -0
- data/LICENSE.md +1 -1
- data/README.md +473 -134
- data/RELEASING.md +2 -2
- data/Rakefile +2 -1
- data/SECURITY.md +9 -0
- data/UPGRADING.md +117 -3
- data/bin/commands/admin_analytics.rb +22 -0
- data/bin/commands/admin_apps.rb +57 -0
- data/bin/commands/admin_apps_activities.rb +32 -0
- data/bin/commands/admin_apps_approved.rb +24 -0
- data/bin/commands/admin_apps_config.rb +31 -0
- data/bin/commands/admin_apps_requests.rb +35 -0
- data/bin/commands/admin_apps_restricted.rb +24 -0
- data/bin/commands/admin_audit_anomaly_allow.rb +29 -0
- data/bin/commands/admin_auth_policy.rb +45 -0
- data/bin/commands/admin_barriers.rb +53 -0
- data/bin/commands/admin_conversations.rb +260 -0
- data/bin/commands/admin_conversations_ekm.rb +23 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +43 -0
- data/bin/commands/admin_emoji.rb +60 -0
- data/bin/commands/admin_functions.rb +23 -0
- data/bin/commands/admin_functions_permissions.rb +31 -0
- data/bin/commands/admin_inviteRequests.rb +42 -0
- data/bin/commands/admin_inviteRequests_approved.rb +22 -0
- data/bin/commands/admin_inviteRequests_denied.rb +22 -0
- data/bin/commands/admin_roles.rb +46 -0
- data/bin/commands/admin_teams.rb +33 -0
- data/bin/commands/admin_teams_admins.rb +22 -0
- data/bin/commands/admin_teams_owners.rb +22 -0
- data/bin/commands/admin_teams_settings.rb +70 -0
- data/bin/commands/admin_usergroups.rb +54 -0
- data/bin/commands/admin_users.rb +106 -0
- data/bin/commands/admin_users_session.rb +84 -0
- data/bin/commands/admin_users_unsupportedVersions.rb +21 -0
- data/bin/commands/admin_workflows.rb +42 -0
- data/bin/commands/admin_workflows_collaborators.rb +31 -0
- data/bin/commands/admin_workflows_permissions.rb +21 -0
- data/bin/commands/admin_workflows_triggers_types_permissions.rb +31 -0
- data/bin/commands/api.rb +15 -9
- data/bin/commands/apps.rb +21 -0
- data/bin/commands/apps_activities.rb +32 -0
- data/bin/commands/apps_auth_external.rb +32 -0
- data/bin/commands/apps_connections.rb +19 -0
- data/bin/commands/apps_datastore.rb +116 -0
- data/bin/commands/apps_event_authorizations.rb +22 -0
- data/bin/commands/apps_manifest.rb +58 -0
- data/bin/commands/assistant_search.rb +27 -0
- data/bin/commands/assistant_threads.rb +45 -0
- data/bin/commands/auth.rb +22 -15
- data/bin/commands/auth_teams.rb +22 -0
- data/bin/commands/bookmarks.rb +60 -0
- data/bin/commands/bots.rb +16 -8
- data/bin/commands/calls.rb +58 -0
- data/bin/commands/calls_participants.rb +31 -0
- data/bin/commands/canvases.rb +41 -0
- data/bin/commands/canvases_access.rb +34 -0
- data/bin/commands/canvases_sections.rb +21 -0
- data/bin/commands/chat.rb +158 -99
- data/bin/commands/chat_scheduledMessages.rb +25 -0
- data/bin/commands/conversations.rb +241 -157
- data/bin/commands/conversations_canvases.rb +22 -0
- data/bin/commands/conversations_externalInvitePermissions.rb +22 -0
- data/bin/commands/conversations_requestSharedInvite.rb +48 -0
- data/bin/commands/dialog.rb +16 -9
- data/bin/commands/dnd.rb +47 -38
- data/bin/commands/emoji.rb +15 -7
- data/bin/commands/files.rb +113 -87
- data/bin/commands/files_comments.rb +16 -30
- data/bin/commands/files_remote.rb +84 -0
- data/bin/commands/functions.rb +31 -0
- data/bin/commands/functions_distributions_permissions.rb +61 -0
- data/bin/commands/functions_workflows_steps.rb +23 -0
- data/bin/commands/functions_workflows_steps_responses.rb +23 -0
- data/bin/commands/migration.rb +17 -9
- data/bin/commands/oauth.rb +19 -24
- data/bin/commands/oauth_v2.rb +35 -0
- data/bin/commands/openid_connect.rb +33 -0
- data/bin/commands/pins.rb +33 -30
- data/bin/commands/reactions.rb +53 -45
- data/bin/commands/reminders.rb +54 -41
- data/bin/commands/rtm.rb +16 -22
- data/bin/commands/search.rb +44 -33
- data/bin/commands/stars.rb +39 -29
- data/bin/commands/team.rb +50 -34
- data/bin/commands/team_billing.rb +19 -0
- data/bin/commands/team_externalTeams.rb +35 -0
- data/bin/commands/team_preferences.rb +19 -0
- data/bin/commands/team_profile.rb +15 -8
- data/bin/commands/tooling_tokens.rb +20 -0
- data/bin/commands/usergroups.rb +69 -53
- data/bin/commands/usergroups_users.rb +30 -19
- data/bin/commands/users.rb +114 -84
- data/bin/commands/users_admin.rb +29 -22
- data/bin/commands/users_discoverableContacts.rb +20 -0
- data/bin/commands/users_prefs.rb +14 -7
- data/bin/commands/users_profile.rb +27 -20
- data/bin/commands/views.rb +56 -0
- data/bin/commands/workflows.rb +44 -0
- data/bin/commands/workflows_triggers_permissions.rb +60 -0
- data/bin/slack +50 -46
- data/examples/files_upload_v2/.env.example +1 -0
- data/examples/{hi_real_time → files_upload_v2}/Gemfile +2 -2
- data/examples/files_upload_v2/README.md +13 -0
- data/examples/files_upload_v2/files_upload_v2.rb +45 -0
- 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_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
- data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/hi.rb +12 -7
- 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/examples/oauth_v2/.env.example +4 -0
- data/examples/oauth_v2/Gemfile +7 -0
- data/examples/oauth_v2/README.md +33 -0
- data/examples/oauth_v2/oauth_v2.rb +60 -0
- data/lib/slack/config.rb +2 -2
- data/lib/slack/events/config.rb +32 -0
- data/lib/slack/events/request.rb +76 -0
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +66 -1
- data/lib/slack/messages/message.rb +1 -4
- data/lib/slack/real_time/api/message.rb +6 -3
- 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/templates/event_handler.erb +5 -1
- data/lib/slack/real_time/api/typing.rb +5 -2
- data/lib/slack/real_time/client.rb +117 -54
- data/lib/slack/real_time/concurrency/async.rb +142 -0
- data/lib/slack/real_time/concurrency.rb +2 -2
- data/lib/slack/real_time/config.rb +12 -13
- 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 +5 -0
- data/lib/slack/real_time/models/im.rb +1 -0
- data/lib/slack/real_time/models/{group.rb → mpim.rb} +2 -1
- 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/models.rb +3 -1
- data/lib/slack/real_time/socket.rb +49 -17
- data/lib/slack/real_time/stores/base.rb +28 -14
- data/lib/slack/real_time/stores/starter.rb +325 -287
- data/lib/slack/real_time/stores/store.rb +271 -186
- data/lib/slack/real_time/stores.rb +2 -7
- data/lib/slack/utils/security.rb +44 -0
- data/lib/slack/version.rb +2 -1
- data/lib/slack/web/api/endpoints/admin_analytics.rb +28 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +78 -0
- data/lib/slack/web/api/endpoints/admin_apps_activities.rb +53 -0
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +37 -0
- data/lib/slack/web/api/endpoints/admin_apps_config.rb +40 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +53 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +37 -0
- data/lib/slack/web/api/endpoints/admin_audit_anomaly_allow.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_auth_policy.rb +72 -0
- data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +397 -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_emoji.rb +88 -0
- data/lib/slack/web/api/endpoints/admin_functions.rb +36 -0
- data/lib/slack/web/api/endpoints/admin_functions_permissions.rb +41 -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_roles.rb +73 -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 +167 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +121 -0
- data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -0
- data/lib/slack/web/api/endpoints/admin_workflows.rb +67 -0
- data/lib/slack/web/api/endpoints/admin_workflows_collaborators.rb +42 -0
- data/lib/slack/web/api/endpoints/admin_workflows_permissions.rb +26 -0
- data/lib/slack/web/api/endpoints/admin_workflows_triggers_types_permissions.rb +41 -0
- data/lib/slack/web/api/endpoints/api.rb +2 -3
- data/lib/slack/web/api/endpoints/apps.rb +27 -0
- data/lib/slack/web/api/endpoints/apps_activities.rb +54 -0
- data/lib/slack/web/api/endpoints/apps_auth_external.rb +41 -0
- data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_datastore.rb +181 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
- data/lib/slack/web/api/endpoints/apps_manifest.rb +79 -0
- data/lib/slack/web/api/endpoints/assistant_search.rb +44 -0
- data/lib/slack/web/api/endpoints/assistant_threads.rb +68 -0
- data/lib/slack/web/api/endpoints/auth.rb +2 -1
- data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
- data/lib/slack/web/api/endpoints/bookmarks.rb +90 -0
- data/lib/slack/web/api/endpoints/bots.rb +4 -1
- 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/canvases.rb +54 -0
- data/lib/slack/web/api/endpoints/canvases_access.rb +47 -0
- data/lib/slack/web/api/endpoints/canvases_sections.rb +27 -0
- data/lib/slack/web/api/endpoints/chat.rb +172 -87
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
- data/lib/slack/web/api/endpoints/conversations.rb +190 -64
- data/lib/slack/web/api/endpoints/conversations_canvases.rb +28 -0
- data/lib/slack/web/api/endpoints/conversations_externalInvitePermissions.rb +31 -0
- data/lib/slack/web/api/endpoints/conversations_requestSharedInvite.rb +73 -0
- data/lib/slack/web/api/endpoints/dialog.rb +6 -10
- data/lib/slack/web/api/endpoints/dnd.rb +11 -5
- data/lib/slack/web/api/endpoints/emoji.rb +3 -0
- data/lib/slack/web/api/endpoints/files.rb +85 -36
- data/lib/slack/web/api/endpoints/files_comments.rb +4 -36
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/functions.rb +43 -0
- data/lib/slack/web/api/endpoints/functions_distributions_permissions.rb +84 -0
- data/lib/slack/web/api/endpoints/functions_workflows_steps.rb +30 -0
- data/lib/slack/web/api/endpoints/functions_workflows_steps_responses.rb +30 -0
- data/lib/slack/web/api/endpoints/migration.rb +6 -3
- data/lib/slack/web/api/endpoints/oauth.rb +10 -32
- data/lib/slack/web/api/endpoints/oauth_v2.rb +48 -0
- data/lib/slack/web/api/endpoints/openid_connect.rb +42 -0
- data/lib/slack/web/api/endpoints/pins.rb +11 -18
- data/lib/slack/web/api/endpoints/reactions.rb +31 -20
- data/lib/slack/web/api/endpoints/reminders.rb +25 -12
- data/lib/slack/web/api/endpoints/rtm.rb +4 -22
- data/lib/slack/web/api/endpoints/search.rb +33 -18
- data/lib/slack/web/api/endpoints/stars.rb +23 -10
- data/lib/slack/web/api/endpoints/team.rb +38 -7
- data/lib/slack/web/api/endpoints/team_billing.rb +21 -0
- data/lib/slack/web/api/endpoints/team_externalTeams.rb +53 -0
- data/lib/slack/web/api/endpoints/team_preferences.rb +21 -0
- data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
- data/lib/slack/web/api/endpoints/tooling_tokens.rb +24 -0
- data/lib/slack/web/api/endpoints/usergroups.rb +44 -25
- data/lib/slack/web/api/endpoints/usergroups_users.rb +23 -14
- data/lib/slack/web/api/endpoints/users.rb +57 -18
- data/lib/slack/web/api/endpoints/users_admin.rb +5 -2
- data/lib/slack/web/api/endpoints/users_discoverableContacts.rb +24 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +2 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +11 -9
- data/lib/slack/web/api/endpoints/views.rb +86 -0
- data/lib/slack/web/api/endpoints/workflows.rb +63 -0
- data/lib/slack/web/api/endpoints/workflows_triggers_permissions.rb +87 -0
- data/lib/slack/web/api/endpoints.rb +136 -12
- data/lib/slack/web/api/error.rb +1 -0
- data/lib/slack/web/api/errors/server_error.rb +37 -0
- data/lib/slack/web/api/errors/slack_error.rb +14 -1
- data/lib/slack/web/api/errors/too_many_requests_error.rb +2 -4
- data/lib/slack/web/api/errors.rb +1396 -0
- data/lib/slack/web/api/helpers/files.rb +97 -0
- data/lib/slack/web/api/helpers.rb +13 -0
- data/lib/slack/web/api/mixins/conversations.id.rb +47 -0
- data/lib/slack/web/api/mixins/ids.id.rb +4 -3
- data/lib/slack/web/api/mixins/users.id.rb +18 -4
- data/lib/slack/web/api/mixins/users.search.rb +3 -1
- data/lib/slack/web/api/mixins.rb +2 -2
- data/lib/slack/web/api/options.rb +26 -0
- data/lib/slack/web/api/patches/.gitkeep +0 -0
- data/lib/slack/web/api/templates/command.erb +19 -12
- data/lib/slack/web/api/templates/endpoints.erb +2 -2
- data/lib/slack/web/api/templates/errors.erb +20 -0
- data/lib/slack/web/api/templates/method.erb +23 -3
- data/lib/slack/web/api/templates/method_spec.erb +40 -3
- data/lib/slack/web/client.rb +4 -1
- data/lib/slack/web/config.rb +9 -2
- data/lib/slack/web/faraday/connection.rb +11 -20
- data/lib/slack/web/faraday/options.rb +24 -0
- data/lib/slack/web/faraday/request.rb +6 -1
- data/lib/slack/web/faraday/response/raise_error.rb +14 -8
- data/lib/slack/web/faraday/response/wrap_error.rb +24 -0
- data/lib/slack/web/pagination/cursor.rb +7 -7
- data/lib/slack-ruby-client.rb +18 -6
- data/lib/slack.rb +1 -0
- data/lib/slack_ruby_client.rb +1 -0
- data/lib/tasks/git.rake +1 -0
- data/lib/tasks/real_time.rake +51 -21
- data/lib/tasks/update.rake +1 -0
- data/lib/tasks/web.rake +43 -17
- data/slack-ruby-client.gemspec +10 -14
- metadata +191 -307
- data/.travis.yml +0 -30
- data/bin/commands/apps_permissions.rb +0 -22
- data/bin/commands/channels.rb +0 -175
- data/bin/commands/groups.rb +0 -172
- data/bin/commands/im.rb +0 -67
- data/bin/commands/mpim.rb +0 -63
- data/bin/commands.rb +0 -33
- 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/hi.rb +0 -36
- data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -117
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
- data/lib/slack/web/api/endpoints/apps_permissions.rb +0 -35
- data/lib/slack/web/api/endpoints/channels.rb +0 -265
- data/lib/slack/web/api/endpoints/groups.rb +0 -255
- data/lib/slack/web/api/endpoints/im.rb +0 -113
- data/lib/slack/web/api/endpoints/mpim.rb +0 -98
- data/lib/slack/web/api/endpoints/presence.rb +0 -23
- data/lib/slack/web/api/mixins/channels.id.json +0 -20
- data/lib/slack/web/api/mixins/channels.id.rb +0 -26
- data/lib/slack/web/api/mixins/groups.id.json +0 -20
- data/lib/slack/web/api/mixins/groups.id.rb +0 -26
- 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/dialog.1.open-json-support.patch +0 -17
- data/lib/slack/web/api/templates/commands.erb +0 -5
- data/screenshots/register-bot.png +0 -0
- data/spec/fixtures/slack/web/429_error.yml +0 -85
- data/spec/fixtures/slack/web/auth_test_error.yml +0 -48
- data/spec/fixtures/slack/web/auth_test_success.yml +0 -57
- data/spec/fixtures/slack/web/channels_info.yml +0 -46
- data/spec/fixtures/slack/web/groups_info.yml +0 -43
- data/spec/fixtures/slack/web/paginated_users_list.yml +0 -181
- data/spec/fixtures/slack/web/rtm_connect.yml +0 -70
- data/spec/fixtures/slack/web/rtm_start.yml +0 -104
- data/spec/fixtures/slack/web/users_info.yml +0 -130
- data/spec/fixtures/slack/web/users_list.yml +0 -72
- data/spec/integration/integration_spec.rb +0 -139
- data/spec/slack/config_spec.rb +0 -14
- data/spec/slack/messages/formatting_spec.rb +0 -43
- data/spec/slack/real_time/api/message_spec.rb +0 -15
- data/spec/slack/real_time/api/ping_spec.rb +0 -15
- data/spec/slack/real_time/api/typing_spec.rb +0 -15
- data/spec/slack/real_time/client_spec.rb +0 -425
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -62
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +0 -19
- data/spec/slack/real_time/event_handlers/bot_spec.rb +0 -44
- data/spec/slack/real_time/event_handlers/channel_spec.rb +0 -116
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +0 -15
- data/spec/slack/real_time/event_handlers/group_spec.rb +0 -90
- data/spec/slack/real_time/event_handlers/im_spec.rb +0 -47
- data/spec/slack/real_time/event_handlers/team_spec.rb +0 -62
- data/spec/slack/real_time/event_handlers/user_spec.rb +0 -63
- data/spec/slack/real_time/rtm_connect_spec.rb +0 -13
- data/spec/slack/real_time/rtm_start_spec.rb +0 -13
- data/spec/slack/real_time/store_spec.rb +0 -11
- data/spec/slack/slack_spec.rb +0 -58
- data/spec/slack/version_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/api_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +0 -15
- data/spec/slack/web/api/endpoints/bots_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +0 -25
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +0 -11
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +0 -105
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +0 -28
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +0 -11
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +0 -33
- data/spec/slack/web/api/endpoints/dnd_spec.rb +0 -12
- data/spec/slack/web/api/endpoints/emoji_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +0 -34
- data/spec/slack/web/api/endpoints/files_spec.rb +0 -43
- data/spec/slack/web/api/endpoints/im_spec.rb +0 -38
- data/spec/slack/web/api/endpoints/migration_spec.rb +0 -12
- data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
- data/spec/slack/web/api/endpoints/oauth_spec.rb +0 -29
- data/spec/slack/web/api/endpoints/pins_spec.rb +0 -22
- data/spec/slack/web/api/endpoints/reactions_spec.rb +0 -17
- data/spec/slack/web/api/endpoints/reminders_spec.rb +0 -30
- data/spec/slack/web/api/endpoints/rtm_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/search_spec.rb +0 -22
- data/spec/slack/web/api/endpoints/stars_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/team_profile_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/team_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/usergroups_spec.rb +0 -27
- data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +0 -20
- data/spec/slack/web/api/endpoints/users_admin_spec.rb +0 -17
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +0 -7
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +0 -7
- data/spec/slack/web/api/error_spec.rb +0 -14
- data/spec/slack/web/api/errors/slack_error_spec.rb +0 -14
- data/spec/slack/web/api/mixins/channels_spec.rb +0 -31
- data/spec/slack/web/api/mixins/groups_spec.rb +0 -31
- data/spec/slack/web/api/mixins/users_spec.rb +0 -39
- data/spec/slack/web/api/pagination/cursor_spec.rb +0 -70
- data/spec/slack/web/client_spec.rb +0 -174
- data/spec/spec_helper.rb +0 -14
- data/spec/support/queue_with_timeout.rb +0 -34
- data/spec/support/real_time/concurrency/mock.rb +0 -30
- data/spec/support/real_time/connected_client.rb +0 -21
- data/spec/support/real_time/event.rb +0 -11
- data/spec/support/token.rb +0 -10
- data/spec/support/vcr.rb +0 -9
- /data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
3
|
+
|
4
|
+
module Slack
|
5
|
+
module Web
|
6
|
+
module Api
|
7
|
+
module Endpoints
|
8
|
+
module CallsParticipants
|
9
|
+
#
|
10
|
+
# Registers new participants added to a Call.
|
11
|
+
#
|
12
|
+
# @option options [string] :id
|
13
|
+
# id returned by the calls.add method.
|
14
|
+
# @option options [array] :users
|
15
|
+
# The list of users to add as participants in the Call. Read more on how to specify users here.
|
16
|
+
# @see https://api.slack.com/methods/calls.participants.add
|
17
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls.participants/calls.participants.add.json
|
18
|
+
def calls_participants_add(options = {})
|
19
|
+
raise ArgumentError, 'Required arguments :id missing' if options[:id].nil?
|
20
|
+
raise ArgumentError, 'Required arguments :users missing' if options[:users].nil?
|
21
|
+
post('calls.participants.add', options)
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# Registers participants removed from a Call.
|
26
|
+
#
|
27
|
+
# @option options [string] :id
|
28
|
+
# id returned by the calls.add method.
|
29
|
+
# @option options [array] :users
|
30
|
+
# The list of users to remove as participants in the Call. Read more on how to specify users here.
|
31
|
+
# @see https://api.slack.com/methods/calls.participants.remove
|
32
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/calls.participants/calls.participants.remove.json
|
33
|
+
def calls_participants_remove(options = {})
|
34
|
+
raise ArgumentError, 'Required arguments :id missing' if options[:id].nil?
|
35
|
+
raise ArgumentError, 'Required arguments :users missing' if options[:users].nil?
|
36
|
+
post('calls.participants.remove', options)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,54 @@
|
|
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 Canvases
|
9
|
+
#
|
10
|
+
# Create canvas for a user
|
11
|
+
#
|
12
|
+
# @option options [string] :channel_id
|
13
|
+
# Channel ID of the channel the canvas will be tabbed in. This is a required field for free teams.
|
14
|
+
# @option options [Object] :document_content
|
15
|
+
# Structure describing the type and value of the content to create.
|
16
|
+
# @option options [string] :title
|
17
|
+
# Title of the newly created canvas.
|
18
|
+
# @see https://api.slack.com/methods/canvases.create
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/canvases/canvases.create.json
|
20
|
+
def canvases_create(options = {})
|
21
|
+
post('canvases.create', options)
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# Deletes a canvas
|
26
|
+
#
|
27
|
+
# @option options [Object] :canvas_id
|
28
|
+
# Encoded ID of the canvas.
|
29
|
+
# @see https://api.slack.com/methods/canvases.delete
|
30
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/canvases/canvases.delete.json
|
31
|
+
def canvases_delete(options = {})
|
32
|
+
raise ArgumentError, 'Required arguments :canvas_id missing' if options[:canvas_id].nil?
|
33
|
+
post('canvases.delete', options)
|
34
|
+
end
|
35
|
+
|
36
|
+
#
|
37
|
+
# Update an existing canvas
|
38
|
+
#
|
39
|
+
# @option options [Object] :canvas_id
|
40
|
+
# Encoded ID of the canvas.
|
41
|
+
# @option options [array] :changes
|
42
|
+
# List of changes to apply on the specified canvas.
|
43
|
+
# @see https://api.slack.com/methods/canvases.edit
|
44
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/canvases/canvases.edit.json
|
45
|
+
def canvases_edit(options = {})
|
46
|
+
raise ArgumentError, 'Required arguments :canvas_id missing' if options[:canvas_id].nil?
|
47
|
+
raise ArgumentError, 'Required arguments :changes missing' if options[:changes].nil?
|
48
|
+
post('canvases.edit', options)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,47 @@
|
|
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 CanvasesAccess
|
9
|
+
#
|
10
|
+
# Remove access to a canvas for specified entities
|
11
|
+
#
|
12
|
+
# @option options [Object] :canvas_id
|
13
|
+
# Encoded ID of the canvas.
|
14
|
+
# @option options [array] :channel_ids
|
15
|
+
# List of channels you wish to update access for.
|
16
|
+
# @option options [array] :user_ids
|
17
|
+
# List of users you wish to update access for.
|
18
|
+
# @see https://api.slack.com/methods/canvases.access.delete
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/canvases.access/canvases.access.delete.json
|
20
|
+
def canvases_access_delete(options = {})
|
21
|
+
raise ArgumentError, 'Required arguments :canvas_id missing' if options[:canvas_id].nil?
|
22
|
+
post('canvases.access.delete', options)
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# Sets the access level to a canvas for specified entities
|
27
|
+
#
|
28
|
+
# @option options [enum] :access_level
|
29
|
+
# Desired level of access.
|
30
|
+
# @option options [Object] :canvas_id
|
31
|
+
# Encoded ID of the canvas.
|
32
|
+
# @option options [array] :channel_ids
|
33
|
+
# List of channels you wish to update access for. Can only be used if user_ids is not provided.
|
34
|
+
# @option options [array] :user_ids
|
35
|
+
# List of users you wish to update access for. Can only be used if channel_ids is not provided.
|
36
|
+
# @see https://api.slack.com/methods/canvases.access.set
|
37
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/canvases.access/canvases.access.set.json
|
38
|
+
def canvases_access_set(options = {})
|
39
|
+
raise ArgumentError, 'Required arguments :access_level missing' if options[:access_level].nil?
|
40
|
+
raise ArgumentError, 'Required arguments :canvas_id missing' if options[:canvas_id].nil?
|
41
|
+
post('canvases.access.set', options)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
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 CanvasesSections
|
9
|
+
#
|
10
|
+
# Find sections matching the provided criteria
|
11
|
+
#
|
12
|
+
# @option options [Object] :canvas_id
|
13
|
+
# Encoded ID of the canvas.
|
14
|
+
# @option options [Object] :criteria
|
15
|
+
# Filtering criteria.
|
16
|
+
# @see https://api.slack.com/methods/canvases.sections.lookup
|
17
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/canvases.sections/canvases.sections.lookup.json
|
18
|
+
def canvases_sections_lookup(options = {})
|
19
|
+
raise ArgumentError, 'Required arguments :canvas_id missing' if options[:canvas_id].nil?
|
20
|
+
raise ArgumentError, 'Required arguments :criteria missing' if options[:criteria].nil?
|
21
|
+
post('canvases.sections.lookup', 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
|
@@ -16,9 +17,10 @@ module Slack
|
|
16
17
|
# Additional parameters provided to the slash command.
|
17
18
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/chat/chat.command.json
|
18
19
|
def chat_command(options = {})
|
19
|
-
|
20
|
-
|
21
|
-
options = options.merge(channel:
|
20
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
21
|
+
raise ArgumentError, 'Required arguments :command missing' if options[:command].nil?
|
22
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
23
|
+
logger.warn('The chat.command method is undocumented.')
|
22
24
|
post('chat.command', options)
|
23
25
|
end
|
24
26
|
|
@@ -29,30 +31,48 @@ module Slack
|
|
29
31
|
# Channel containing the message to be deleted.
|
30
32
|
# @option options [timestamp] :ts
|
31
33
|
# Timestamp of the message to be deleted.
|
32
|
-
# @option options [
|
34
|
+
# @option options [boolean] :as_user
|
33
35
|
# 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.
|
34
36
|
# @see https://api.slack.com/methods/chat.delete
|
35
37
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.delete.json
|
36
38
|
def chat_delete(options = {})
|
37
|
-
|
38
|
-
|
39
|
-
options = options.merge(channel:
|
39
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
40
|
+
raise ArgumentError, 'Required arguments :ts missing' if options[:ts].nil?
|
41
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
40
42
|
post('chat.delete', options)
|
41
43
|
end
|
42
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 [string] :scheduled_message_id
|
51
|
+
# scheduled_message_id returned from call to chat.scheduleMessage.
|
52
|
+
# @option options [boolean] :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
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
58
|
+
raise ArgumentError, '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
|
+
|
43
63
|
#
|
44
64
|
# Retrieve a permalink URL for a specific extant message
|
45
65
|
#
|
46
66
|
# @option options [channel] :channel
|
47
67
|
# The ID of the conversation or channel containing the message.
|
48
|
-
# @option options [
|
68
|
+
# @option options [string] :message_ts
|
49
69
|
# A message's ts value, uniquely identifying it within a channel.
|
50
70
|
# @see https://api.slack.com/methods/chat.getPermalink
|
51
71
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.getPermalink.json
|
52
72
|
def chat_getPermalink(options = {})
|
53
|
-
|
54
|
-
|
55
|
-
options = options.merge(channel:
|
73
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
74
|
+
raise ArgumentError, 'Required arguments :message_ts missing' if options[:message_ts].nil?
|
75
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
56
76
|
post('chat.getPermalink', options)
|
57
77
|
end
|
58
78
|
|
@@ -61,13 +81,13 @@ module Slack
|
|
61
81
|
#
|
62
82
|
# @option options [channel] :channel
|
63
83
|
# Channel to send message to. Can be a public channel, private group or IM channel. Can be an encoded ID, or a name.
|
64
|
-
# @option options [
|
84
|
+
# @option options [string] :text
|
65
85
|
# Text of the message to send.
|
66
86
|
# @see https://api.slack.com/methods/chat.meMessage
|
67
87
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.meMessage.json
|
68
88
|
def chat_meMessage(options = {})
|
69
|
-
|
70
|
-
|
89
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
90
|
+
raise ArgumentError, 'Required arguments :text missing' if options[:text].nil?
|
71
91
|
post('chat.meMessage', options)
|
72
92
|
end
|
73
93
|
|
@@ -76,31 +96,38 @@ module Slack
|
|
76
96
|
#
|
77
97
|
# @option options [channel] :channel
|
78
98
|
# Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name.
|
79
|
-
# @option options [Object] :text
|
80
|
-
# 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.
|
81
99
|
# @option options [user] :user
|
82
100
|
# id of the user who will receive the ephemeral message. The user should be in the channel specified by the channel argument.
|
83
|
-
# @option options [
|
84
|
-
# Pass true to post the message as the authed bot. Defaults to false.
|
85
|
-
# @option options [Object] :attachments
|
101
|
+
# @option options [string] :attachments
|
86
102
|
# A JSON-based array of structured attachments, presented as a URL-encoded string.
|
87
|
-
# @option options [
|
103
|
+
# @option options [blocks[] as string] :blocks
|
104
|
+
# A JSON-based array of structured blocks, presented as a URL-encoded string.
|
105
|
+
# @option options [string] :text
|
106
|
+
# How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
|
107
|
+
# @option options [boolean] :as_user
|
108
|
+
# (Legacy) 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.
|
109
|
+
# @option options [string] :icon_emoji
|
110
|
+
# Emoji to use as the icon for this message. Overrides icon_url.
|
111
|
+
# @option options [string] :icon_url
|
112
|
+
# URL to an image to use as the icon for this message.
|
113
|
+
# @option options [boolean] :link_names
|
88
114
|
# Find and link channel names and usernames.
|
89
|
-
# @option options [
|
115
|
+
# @option options [string] :markdown_text
|
116
|
+
# Accepts message text formatted in markdown. This argument should not be used in conjunction with blocks or text. Limit this field to 12,000 characters.
|
117
|
+
# @option options [string] :parse
|
90
118
|
# Change how messages are treated. Defaults to none. See below.
|
119
|
+
# @option options [string] :thread_ts
|
120
|
+
# 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.
|
121
|
+
# @option options [string] :username
|
122
|
+
# Set your bot's user name.
|
91
123
|
# @see https://api.slack.com/methods/chat.postEphemeral
|
92
124
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postEphemeral.json
|
93
125
|
def chat_postEphemeral(options = {})
|
94
|
-
|
95
|
-
|
96
|
-
|
126
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
127
|
+
raise ArgumentError, 'Required arguments :user missing' if options[:user].nil?
|
128
|
+
raise ArgumentError, 'At least one of :attachments, :blocks, :text is required' if options[:attachments].nil? && options[:blocks].nil? && options[:text].nil?
|
97
129
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
98
|
-
|
99
|
-
if options.key?(:attachments)
|
100
|
-
attachments = options[:attachments]
|
101
|
-
attachments = JSON.dump(attachments) unless attachments.is_a?(String)
|
102
|
-
options = options.merge(attachments: attachments)
|
103
|
-
end
|
130
|
+
options = encode_options_as_json(options, %i[attachments blocks])
|
104
131
|
post('chat.postEphemeral', options)
|
105
132
|
end
|
106
133
|
|
@@ -108,67 +135,120 @@ module Slack
|
|
108
135
|
# Sends a message to a channel.
|
109
136
|
#
|
110
137
|
# @option options [channel] :channel
|
111
|
-
#
|
112
|
-
# @option options [
|
113
|
-
# 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.
|
114
|
-
# @option options [Object] :as_user
|
115
|
-
# Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See authorship below.
|
116
|
-
# @option options [Object] :attachments
|
138
|
+
# An encoded ID or channel name that represents a channel, private group, or IM channel to send the message to. See below for more details.
|
139
|
+
# @option options [string] :attachments
|
117
140
|
# A JSON-based array of structured attachments, presented as a URL-encoded string.
|
118
|
-
# @option options [
|
119
|
-
#
|
120
|
-
# @option options [
|
121
|
-
#
|
122
|
-
# @option options [Object] :
|
123
|
-
#
|
124
|
-
# @option options [
|
125
|
-
#
|
126
|
-
# @option options [
|
141
|
+
# @option options [blocks[] as string] :blocks
|
142
|
+
# A JSON-based array of structured blocks, presented as a URL-encoded string.
|
143
|
+
# @option options [string] :text
|
144
|
+
# How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
|
145
|
+
# @option options [Object] :agent_message_source_type
|
146
|
+
# Identify how the message was posted for agentforce BE logging.
|
147
|
+
# @option options [boolean] :as_user
|
148
|
+
# (Legacy) Pass true to post the message as the authed user instead of as a bot. Defaults to false. Can only be used by classic apps. See legacy as_user parameter below.
|
149
|
+
# @option options [string] :icon_emoji
|
150
|
+
# Emoji to use as the icon for this message. Overrides icon_url.
|
151
|
+
# @option options [string] :icon_url
|
152
|
+
# URL to an image to use as the icon for this message.
|
153
|
+
# @option options [boolean] :link_names
|
154
|
+
# Find and link user groups. No longer supports linking individual users; use syntax shown in Mentioning Users instead.
|
155
|
+
# @option options [string] :markdown_text
|
156
|
+
# Accepts message text formatted in markdown. This argument should not be used in conjunction with blocks or text. Limit this field to 12,000 characters.
|
157
|
+
# @option options [string] :metadata
|
158
|
+
# JSON object with event_type and event_payload fields, presented as a URL-encoded string. Metadata you post to Slack is accessible to any app or user who is a member of that workspace.
|
159
|
+
# @option options [boolean] :mrkdwn
|
160
|
+
# Disable Slack markup parsing by setting to false. Enabled by default.
|
161
|
+
# @option options [string] :parse
|
162
|
+
# Change how messages are treated. See below.
|
163
|
+
# @option options [boolean] :reply_broadcast
|
127
164
|
# Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.
|
128
|
-
# @option options [
|
165
|
+
# @option options [string] :thread_ts
|
129
166
|
# Provide another message's ts value to make this message a reply. Avoid using a reply's ts value; use its parent instead.
|
130
|
-
# @option options [
|
167
|
+
# @option options [boolean] :unfurl_links
|
131
168
|
# Pass true to enable unfurling of primarily text-based content.
|
132
|
-
# @option options [
|
169
|
+
# @option options [boolean] :unfurl_media
|
133
170
|
# Pass false to disable unfurling of media content.
|
134
|
-
# @option options [
|
135
|
-
# Set your bot's user name.
|
171
|
+
# @option options [string] :username
|
172
|
+
# Set your bot's user name.
|
136
173
|
# @see https://api.slack.com/methods/chat.postMessage
|
137
174
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postMessage.json
|
138
175
|
def chat_postMessage(options = {})
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
if options.key?(:attachments)
|
143
|
-
attachments = options[:attachments]
|
144
|
-
attachments = JSON.dump(attachments) unless attachments.is_a?(String)
|
145
|
-
options = options.merge(attachments: attachments)
|
146
|
-
end
|
176
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
177
|
+
raise ArgumentError, 'At least one of :attachments, :blocks, :text is required' if options[:attachments].nil? && options[:blocks].nil? && options[:text].nil?
|
178
|
+
options = encode_options_as_json(options, %i[attachments blocks metadata])
|
147
179
|
post('chat.postMessage', options)
|
148
180
|
end
|
149
181
|
|
182
|
+
#
|
183
|
+
# Schedules a message to be sent to a channel.
|
184
|
+
#
|
185
|
+
# @option options [channel] :channel
|
186
|
+
# Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name. See below for more details.
|
187
|
+
# @option options [integer] :post_at
|
188
|
+
# Unix timestamp representing the future time the message should post to Slack.
|
189
|
+
# @option options [string] :attachments
|
190
|
+
# A JSON-based array of structured attachments, presented as a URL-encoded string.
|
191
|
+
# @option options [blocks[] as string] :blocks
|
192
|
+
# A JSON-based array of structured blocks, presented as a URL-encoded string.
|
193
|
+
# @option options [string] :text
|
194
|
+
# How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
|
195
|
+
# @option options [boolean] :as_user
|
196
|
+
# Set to true to post the message as the authed user, instead of as a bot. Defaults to false. Cannot be used by new Slack apps. See chat.postMessage.
|
197
|
+
# @option options [boolean] :link_names
|
198
|
+
# Find and link user groups. No longer supports linking individual users; use syntax shown in Mentioning Users instead.
|
199
|
+
# @option options [string] :markdown_text
|
200
|
+
# Accepts message text formatted in markdown. This argument should not be used in conjunction with blocks or text. Limit this field to 12,000 characters.
|
201
|
+
# @option options [string] :metadata
|
202
|
+
# JSON object with event_type and event_payload fields, presented as a URL-encoded string. Metadata you post to Slack is accessible to any app or user who is a member of that workspace.
|
203
|
+
# @option options [enum] :parse
|
204
|
+
# Change how messages are treated. See chat.postMessage.
|
205
|
+
# @option options [boolean] :reply_broadcast
|
206
|
+
# Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false.
|
207
|
+
# @option options [string] :thread_ts
|
208
|
+
# Provide another message's ts value to make this message a reply. Avoid using a reply's ts value; use its parent instead.
|
209
|
+
# @option options [boolean] :unfurl_links
|
210
|
+
# Pass true to enable unfurling of primarily text-based content.
|
211
|
+
# @option options [boolean] :unfurl_media
|
212
|
+
# Pass false to disable unfurling of media content.
|
213
|
+
# @see https://api.slack.com/methods/chat.scheduleMessage
|
214
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.scheduleMessage.json
|
215
|
+
def chat_scheduleMessage(options = {})
|
216
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
217
|
+
raise ArgumentError, 'Required arguments :post_at missing' if options[:post_at].nil?
|
218
|
+
raise ArgumentError, 'At least one of :attachments, :blocks, :text is required' if options[:attachments].nil? && options[:blocks].nil? && options[:text].nil?
|
219
|
+
options = encode_options_as_json(options, %i[attachments blocks metadata])
|
220
|
+
post('chat.scheduleMessage', options)
|
221
|
+
end
|
222
|
+
|
150
223
|
#
|
151
224
|
# Provide custom unfurl behavior for user-posted URLs
|
152
225
|
#
|
153
226
|
# @option options [channel] :channel
|
154
|
-
# Channel ID of the message.
|
227
|
+
# Channel ID of the message. Both channel and ts must be provided together, or unfurl_id and source must be provided together.
|
155
228
|
# @option options [timestamp] :ts
|
156
229
|
# Timestamp of the message to add unfurl behavior to.
|
157
|
-
# @option options [
|
158
|
-
# URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl message attachments.
|
230
|
+
# @option options [string] :unfurls
|
231
|
+
# URL-encoded JSON map with keys set to URLs featured in the the message, pointing to their unfurl blocks or message attachments.
|
232
|
+
# @option options [enum] :source
|
233
|
+
# The source of the link to unfurl. The source may either be composer, when the link is inside the message composer, or conversations_history, when the link has been posted to a conversation.
|
234
|
+
# @option options [string] :unfurl_id
|
235
|
+
# The ID of the link to unfurl. Both unfurl_id and source must be provided together, or channel and ts must be provided together.
|
236
|
+
# @option options [Object] :user_auth_blocks
|
237
|
+
# 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.
|
159
238
|
# @option options [Object] :user_auth_message
|
160
|
-
# Provide a simply-formatted string to send as an ephemeral message to the user as invitation to authenticate further and enable full unfurling behavior.
|
161
|
-
# @option options [
|
239
|
+
# 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.
|
240
|
+
# @option options [boolean] :user_auth_required
|
162
241
|
# Set to true or 1 to indicate the user must install your Slack app to trigger unfurls for this domain.
|
163
242
|
# @option options [Object] :user_auth_url
|
164
243
|
# Send users to this custom URL where they will complete authentication in your app to fully trigger unfurling. Value should be properly URL-encoded.
|
165
244
|
# @see https://api.slack.com/methods/chat.unfurl
|
166
245
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.unfurl.json
|
167
246
|
def chat_unfurl(options = {})
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
options = options.merge(channel:
|
247
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
248
|
+
raise ArgumentError, 'Required arguments :ts missing' if options[:ts].nil?
|
249
|
+
raise ArgumentError, 'Required arguments :unfurls missing' if options[:unfurls].nil?
|
250
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
251
|
+
options = encode_options_as_json(options, %i[unfurls user_auth_blocks])
|
172
252
|
post('chat.unfurl', options)
|
173
253
|
end
|
174
254
|
|
@@ -176,32 +256,37 @@ module Slack
|
|
176
256
|
# Updates a message.
|
177
257
|
#
|
178
258
|
# @option options [channel] :channel
|
179
|
-
# Channel containing the message to be updated.
|
180
|
-
# @option options [Object] :text
|
181
|
-
# New text for the message, using the default formatting rules. It's not required when presenting attachments.
|
259
|
+
# Channel containing the message to be updated. For direct messages, ensure that this value is a DM ID (starts with D) instead of a User ID (starts with either U or W).
|
182
260
|
# @option options [timestamp] :ts
|
183
261
|
# Timestamp of the message to be updated.
|
184
|
-
# @option options [
|
262
|
+
# @option options [string] :attachments
|
263
|
+
# A JSON-based array of structured attachments, presented as a URL-encoded string.
|
264
|
+
# @option options [blocks[] as string] :blocks
|
265
|
+
# A JSON-based array of structured blocks, presented as a URL-encoded string.
|
266
|
+
# @option options [string] :text
|
267
|
+
# How this field works and whether it is required depends on other fields you use in your API call. See below for more detail.
|
268
|
+
# @option options [boolean] :as_user
|
185
269
|
# Pass true to update the message as the authed user. Bot users in this context are considered authed users.
|
186
|
-
# @option options [
|
187
|
-
#
|
188
|
-
# @option options [
|
189
|
-
# Find and link channel names and usernames. Defaults to none.
|
190
|
-
# @option options [
|
191
|
-
#
|
270
|
+
# @option options [array] :file_ids
|
271
|
+
# Array of new file ids that will be sent with this message.
|
272
|
+
# @option options [boolean] :link_names
|
273
|
+
# 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.
|
274
|
+
# @option options [string] :markdown_text
|
275
|
+
# Accepts message text formatted in markdown. This argument should not be used in conjunction with blocks or text. Limit this field to 12,000 characters.
|
276
|
+
# @option options [string] :metadata
|
277
|
+
# JSON object with event_type and event_payload fields, presented as a URL-encoded string. If you don't include this field, the message's previous metadata will be retained. To remove previous metadata, include an empty object for this field. Metadata you post to Slack is accessible to any app or user who is a member of that workspace.
|
278
|
+
# @option options [string] :parse
|
279
|
+
# 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.
|
280
|
+
# @option options [boolean] :reply_broadcast
|
281
|
+
# Broadcast an existing thread reply to make it visible to everyone in the channel or conversation.
|
192
282
|
# @see https://api.slack.com/methods/chat.update
|
193
283
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.update.json
|
194
284
|
def chat_update(options = {})
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
options = options.merge(channel:
|
199
|
-
|
200
|
-
if options.key?(:attachments)
|
201
|
-
attachments = options[:attachments]
|
202
|
-
attachments = JSON.dump(attachments) unless attachments.is_a?(String)
|
203
|
-
options = options.merge(attachments: attachments)
|
204
|
-
end
|
285
|
+
raise ArgumentError, 'Required arguments :channel missing' if options[:channel].nil?
|
286
|
+
raise ArgumentError, 'Required arguments :ts missing' if options[:ts].nil?
|
287
|
+
raise ArgumentError, 'At least one of :attachments, :blocks, :text is required' if options[:attachments].nil? && options[:blocks].nil? && options[:text].nil?
|
288
|
+
options = options.merge(channel: conversations_id(options)['channel']['id']) if options[:channel]
|
289
|
+
options = encode_options_as_json(options, %i[attachments blocks metadata])
|
205
290
|
post('chat.update', options)
|
206
291
|
end
|
207
292
|
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 [string] :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 [integer] :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 [string] :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
|