slack-ruby-client 0.11.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.github/workflows/danger.yml +19 -0
- data/.github/workflows/integtest.yml +25 -0
- data/.github/workflows/rubocop.yml +13 -0
- data/.github/workflows/test.yml +34 -0
- data/.gitignore +6 -3
- data/.rubocop.yml +36 -2
- data/.rubocop_todo.yml +186 -54
- data/CHANGELOG.md +156 -31
- data/CONTRIBUTING.md +20 -9
- data/Dangerfile +2 -0
- data/Gemfile +27 -6
- data/Gemfile.danger +6 -0
- data/LICENSE.md +1 -1
- data/README.md +199 -52
- data/RELEASING.md +2 -2
- data/Rakefile +2 -1
- data/UPGRADING.md +89 -3
- data/bin/commands/admin_analytics.rb +16 -0
- data/bin/commands/admin_apps.rb +51 -0
- data/bin/commands/admin_apps_approved.rb +17 -0
- data/bin/commands/admin_apps_requests.rb +28 -0
- data/bin/commands/admin_apps_restricted.rb +17 -0
- data/bin/commands/admin_auth_policy.rb +39 -0
- data/bin/commands/admin_barriers.rb +47 -0
- data/bin/commands/admin_conversations.rb +170 -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 +98 -0
- data/bin/commands/admin_users_session.rb +78 -0
- data/bin/commands/admin_users_unsupportedVersions.rb +15 -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_manifest.rb +52 -0
- data/bin/commands/apps_permissions.rb +1 -0
- data/bin/commands/apps_permissions_resources.rb +15 -0
- data/bin/commands/apps_permissions_scopes.rb +13 -0
- data/bin/commands/apps_permissions_users.rb +26 -0
- data/bin/commands/auth.rb +1 -0
- data/bin/commands/auth_teams.rb +16 -0
- data/bin/commands/bookmarks.rb +52 -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 +57 -12
- data/bin/commands/chat_scheduledMessages.rb +19 -0
- data/bin/commands/conversations.rb +75 -4
- data/bin/commands/dialog.rb +1 -0
- data/bin/commands/dnd.rb +6 -3
- data/bin/commands/emoji.rb +1 -0
- data/bin/commands/files.rb +14 -19
- data/bin/commands/files_comments.rb +1 -21
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +1 -159
- data/bin/commands/im.rb +1 -62
- data/bin/commands/migration.rb +2 -0
- data/bin/commands/mpim.rb +1 -58
- data/bin/commands/oauth.rb +4 -15
- data/bin/commands/oauth_v2.rb +29 -0
- data/bin/commands/openid_connect.rb +27 -0
- data/bin/commands/pins.rb +3 -6
- data/bin/commands/reactions.rb +5 -3
- data/bin/commands/reminders.rb +7 -0
- data/bin/commands/rtm.rb +7 -4
- data/bin/commands/search.rb +8 -3
- data/bin/commands/stars.rb +10 -6
- data/bin/commands/team.rb +6 -0
- data/bin/commands/team_billing.rb +13 -0
- data/bin/commands/team_preferences.rb +13 -0
- data/bin/commands/team_profile.rb +1 -0
- data/bin/commands/tooling_tokens.rb +14 -0
- data/bin/commands/usergroups.rb +7 -1
- data/bin/commands/usergroups_users.rb +3 -0
- data/bin/commands/users.rb +21 -6
- data/bin/commands/users_admin.rb +1 -0
- data/bin/commands/users_prefs.rb +1 -0
- data/bin/commands/users_profile.rb +7 -6
- data/bin/commands/views.rb +48 -0
- data/bin/commands/workflows.rb +38 -0
- data/bin/commands.rb +40 -5
- 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_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
- data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
- data/examples/{hi_real_time_async_celluloid → 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/lib/slack/config.rb +2 -2
- data/lib/slack/events/config.rb +32 -0
- data/lib/slack/events/request.rb +72 -0
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +1 -1
- 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 +103 -34
- data/lib/slack/real_time/concurrency/async.rb +138 -0
- data/lib/slack/real_time/concurrency.rb +2 -2
- data/lib/slack/real_time/config.rb +6 -10
- 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/models.rb +1 -0
- data/lib/slack/real_time/socket.rb +45 -17
- data/lib/slack/real_time/stores/base.rb +5 -7
- data/lib/slack/real_time/stores/starter.rb +27 -3
- data/lib/slack/real_time/stores/store.rb +43 -25
- data/lib/slack/real_time/stores.rb +1 -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_approved.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +51 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -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 +262 -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 +163 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +122 -0
- data/lib/slack/web/api/endpoints/admin_users_unsupportedVersions.rb +25 -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_connections.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
- data/lib/slack/web/api/endpoints/apps_manifest.rb +77 -0
- data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -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 +86 -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/channels.rb +2 -243
- data/lib/slack/web/api/endpoints/chat.rb +145 -46
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
- data/lib/slack/web/api/endpoints/conversations.rb +152 -39
- data/lib/slack/web/api/endpoints/dialog.rb +3 -2
- data/lib/slack/web/api/endpoints/dnd.rb +9 -4
- data/lib/slack/web/api/endpoints/emoji.rb +1 -0
- data/lib/slack/web/api/endpoints/files.rb +35 -28
- data/lib/slack/web/api/endpoints/files_comments.rb +2 -34
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +1 -243
- data/lib/slack/web/api/endpoints/im.rb +1 -101
- data/lib/slack/web/api/endpoints/migration.rb +5 -2
- data/lib/slack/web/api/endpoints/mpim.rb +1 -86
- data/lib/slack/web/api/endpoints/oauth.rb +8 -30
- 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 +8 -15
- data/lib/slack/web/api/endpoints/reactions.rb +29 -18
- data/lib/slack/web/api/endpoints/reminders.rb +18 -5
- data/lib/slack/web/api/endpoints/rtm.rb +14 -9
- data/lib/slack/web/api/endpoints/search.rb +30 -15
- data/lib/slack/web/api/endpoints/stars.rb +23 -10
- data/lib/slack/web/api/endpoints/team.rb +15 -4
- data/lib/slack/web/api/endpoints/team_billing.rb +21 -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 +27 -16
- data/lib/slack/web/api/endpoints/usergroups_users.rb +10 -5
- data/lib/slack/web/api/endpoints/users.rb +44 -17
- 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 +9 -8
- 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/endpoints.rb +80 -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 +1066 -0
- data/lib/slack/web/api/mixins/{channels.id.rb → conversations.id.rb} +4 -5
- 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/mixins.rb +2 -2
- data/lib/slack/web/api/patches/chat.1.patch +70 -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 -2
- 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 +5 -1
- data/lib/slack/web/faraday/response/raise_error.rb +14 -7
- 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 +12 -5
- 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 +16 -8
- 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 +7 -12
- data/spec/fixtures/slack/web/429_error.yml +50 -54
- data/spec/fixtures/slack/web/auth_test_error.yml +51 -18
- data/spec/fixtures/slack/web/auth_test_success.yml +50 -26
- data/spec/fixtures/slack/web/conversations_info.yml +167 -0
- data/spec/fixtures/slack/web/conversations_setTopic.yml +84 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +172 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +253 -0
- data/spec/fixtures/slack/web/paginated_users_list.yml +501 -69
- data/spec/fixtures/slack/web/rtm_connect.yml +267 -30
- data/spec/fixtures/slack/web/rtm_start.yml +771 -60
- data/spec/fixtures/slack/web/users_info.yml +153 -69
- data/spec/fixtures/slack/web/users_list.yml +102 -41
- data/spec/fixtures/slack/web/views_open_error.yml +83 -0
- data/spec/integration/integration_spec.rb +116 -48
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +33 -0
- data/spec/slack/events/request_spec.rb +184 -0
- data/spec/slack/messages/formatting_spec.rb +25 -14
- 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 +258 -62
- 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 +3 -2
- data/spec/slack/real_time/event_handlers/channel_spec.rb +14 -11
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
- data/spec/slack/real_time/event_handlers/group_spec.rb +6 -5
- data/spec/slack/real_time/event_handlers/im_spec.rb +10 -9
- data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
- data/spec/slack/real_time/event_handlers/user_spec.rb +3 -2
- 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 +4 -3
- data/spec/slack/slack_spec.rb +42 -8
- 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 +13 -0
- data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_spec.rb +18 -0
- data/spec/slack/web/api/endpoints/admin_auth_policy_spec.rb +35 -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 +98 -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 +41 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
- data/spec/slack/web/api/endpoints/admin_users_unsupportedVersions_spec.rb +8 -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_manifest_spec.rb +36 -0
- 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/bookmarks_spec.rb +40 -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/custom_specs/auth_spec.rb +9 -7
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +131 -39
- data/spec/slack/web/api/endpoints/custom_specs/conversations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +16 -6
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -3
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +103 -0
- data/spec/slack/web/api/endpoints/dnd_spec.rb +4 -3
- 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/migration_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -22
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/openid_connect_spec.rb +8 -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_billing_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/team_preferences_spec.rb +8 -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/tooling_tokens_spec.rb +13 -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 +7 -7
- data/spec/slack/web/api/errors/slack_error_spec.rb +26 -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/users_spec.rb +25 -14
- data/spec/slack/web/api/pagination/cursor_spec.rb +43 -15
- data/spec/slack/web/client_spec.rb +186 -19
- data/spec/slack/web/faraday/request_spec.rb +80 -0
- data/spec/slack/web/faraday/response/raise_error_spec.rb +48 -12
- data/spec/spec_helper.rb +9 -2
- 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 +6 -6
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +37 -1
- metadata +177 -231
- data/.travis.yml +0 -30
- 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_eventmachine/Procfile +0 -2
- data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
- 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/mixins/channels.id.json +0 -20
- 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/screenshots/register-bot.png +0 -0
- data/spec/fixtures/slack/web/503_error.yml +0 -14
- data/spec/fixtures/slack/web/channels_info.yml +0 -46
- data/spec/fixtures/slack/web/groups_info.yml +0 -43
- 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/web/api/endpoints/apps_permissions_spec.rb +0 -15
- data/spec/slack/web/api/endpoints/conversations_spec.rb +0 -100
- 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/endpoints/im_spec.rb +0 -38
- data/spec/slack/web/api/endpoints/mpim_spec.rb +0 -38
- data/spec/slack/web/api/errors/service_unavailable_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
|
@@ -1,25 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
class Socket
|
|
4
|
-
attr_accessor :url
|
|
5
|
-
attr_accessor :options
|
|
5
|
+
attr_accessor :url, :options
|
|
6
6
|
attr_reader :driver
|
|
7
|
-
attr_reader :logger
|
|
8
|
-
protected :logger
|
|
9
7
|
|
|
10
8
|
def initialize(url, options = {})
|
|
11
9
|
@url = url
|
|
12
|
-
@options = options
|
|
10
|
+
@options = options.dup
|
|
13
11
|
@driver = nil
|
|
14
|
-
@logger = options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger
|
|
12
|
+
@logger = @options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger
|
|
13
|
+
@last_message_at = nil
|
|
15
14
|
end
|
|
16
15
|
|
|
17
16
|
def send_data(message)
|
|
18
17
|
logger.debug("#{self.class}##{__method__}") { message }
|
|
19
18
|
case message
|
|
20
|
-
when Numeric then driver.text(message.to_s)
|
|
21
|
-
when String then driver.text(message)
|
|
22
|
-
when Array then driver.binary(message)
|
|
19
|
+
when Numeric then @driver.text(message.to_s)
|
|
20
|
+
when String then @driver.text(message)
|
|
21
|
+
when Array then @driver.binary(message)
|
|
23
22
|
else false
|
|
24
23
|
end
|
|
25
24
|
end
|
|
@@ -28,24 +27,31 @@ module Slack
|
|
|
28
27
|
return if connected?
|
|
29
28
|
|
|
30
29
|
connect
|
|
31
|
-
logger.debug("#{self.class}##{__method__}") { driver.class }
|
|
30
|
+
logger.debug("#{self.class}##{__method__}") { @driver.class }
|
|
31
|
+
|
|
32
|
+
@driver.on :message do
|
|
33
|
+
@last_message_at = current_time
|
|
34
|
+
end
|
|
32
35
|
|
|
33
|
-
yield driver if block_given?
|
|
36
|
+
yield @driver if block_given?
|
|
34
37
|
end
|
|
35
38
|
|
|
39
|
+
# Gracefully shut down the connection.
|
|
36
40
|
def disconnect!
|
|
37
|
-
driver.close
|
|
41
|
+
@driver.close
|
|
42
|
+
ensure
|
|
43
|
+
close
|
|
38
44
|
end
|
|
39
45
|
|
|
40
46
|
def connected?
|
|
41
|
-
|
|
47
|
+
!@driver.nil?
|
|
42
48
|
end
|
|
43
49
|
|
|
44
50
|
def start_sync(client)
|
|
45
51
|
thread = start_async(client)
|
|
46
|
-
thread
|
|
52
|
+
thread&.join
|
|
47
53
|
rescue Interrupt
|
|
48
|
-
thread
|
|
54
|
+
thread&.exit
|
|
49
55
|
end
|
|
50
56
|
|
|
51
57
|
# @return [#join]
|
|
@@ -53,12 +59,34 @@ module Slack
|
|
|
53
59
|
raise NotImplementedError, "Expected #{self.class} to implement #{__method__}."
|
|
54
60
|
end
|
|
55
61
|
|
|
62
|
+
def restart_async(_client, _url)
|
|
63
|
+
raise NotImplementedError, "Expected #{self.class} to implement #{__method__}."
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def time_since_last_message
|
|
67
|
+
return 0 unless @last_message_at
|
|
68
|
+
|
|
69
|
+
current_time - @last_message_at
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def current_time
|
|
73
|
+
Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
74
|
+
end
|
|
75
|
+
|
|
56
76
|
def close
|
|
77
|
+
# When you call `driver.emit(:close)`, it will typically end up calling `client.close`
|
|
78
|
+
# which will call `@socket.close` and end up back here. In order to break this infinite
|
|
79
|
+
# recursion, we check and set `@driver = nil` before invoking `client.close`.
|
|
80
|
+
return unless (driver = @driver)
|
|
81
|
+
|
|
57
82
|
@driver = nil
|
|
83
|
+
driver.emit(:close)
|
|
58
84
|
end
|
|
59
85
|
|
|
60
86
|
protected
|
|
61
87
|
|
|
88
|
+
attr_reader :logger
|
|
89
|
+
|
|
62
90
|
def addr
|
|
63
91
|
URI(url).host
|
|
64
92
|
end
|
|
@@ -69,9 +97,9 @@ module Slack
|
|
|
69
97
|
|
|
70
98
|
def port
|
|
71
99
|
case (uri = URI(url)).scheme
|
|
72
|
-
when 'wss'
|
|
100
|
+
when 'wss', 'https'
|
|
73
101
|
URI::HTTPS::DEFAULT_PORT
|
|
74
|
-
when 'ws', 'http'
|
|
102
|
+
when 'ws', 'http'
|
|
75
103
|
URI::HTTP::DEFAULT_PORT
|
|
76
104
|
else
|
|
77
105
|
uri.port
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Stores
|
|
4
5
|
# Doesn't store anything.
|
|
5
6
|
class Base
|
|
6
|
-
|
|
7
|
+
class << self
|
|
8
|
+
attr_accessor :events
|
|
9
|
+
end
|
|
7
10
|
|
|
8
|
-
attr_accessor :users
|
|
9
|
-
attr_accessor :bots
|
|
10
|
-
attr_accessor :channels
|
|
11
|
-
attr_accessor :groups
|
|
12
|
-
attr_accessor :teams
|
|
13
|
-
attr_accessor :ims
|
|
11
|
+
attr_accessor :users, :bots, :channels, :groups, :teams, :ims
|
|
14
12
|
|
|
15
13
|
def self
|
|
16
14
|
nil
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Stores
|
|
4
5
|
# Only stores initial information.
|
|
5
6
|
class Starter < Base
|
|
6
|
-
attr_reader :self
|
|
7
|
-
|
|
8
|
-
attr_reader :team
|
|
7
|
+
attr_reader :self, :team
|
|
9
8
|
|
|
10
9
|
def initialize(attrs)
|
|
11
10
|
@team = Models::Team.new(attrs.team)
|
|
@@ -14,6 +13,31 @@ module Slack
|
|
|
14
13
|
|
|
15
14
|
### RealTime Events
|
|
16
15
|
|
|
16
|
+
# A shared channel invite was sent to a Slack user.
|
|
17
|
+
# @see https://api.slack.com/events/shared_channel_invite_received
|
|
18
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/shared_channel_invite_received.json
|
|
19
|
+
# on :shared_channel_invite_received do |data|
|
|
20
|
+
|
|
21
|
+
# An enterprise grid migration has started on an external workspace..
|
|
22
|
+
# @see https://api.slack.com/events/external_org_migration_started
|
|
23
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
24
|
+
# on :external_org_migration_started do |data|
|
|
25
|
+
|
|
26
|
+
# An enterprise grid migration has finished on an external workspace..
|
|
27
|
+
# @see https://api.slack.com/events/external_org_migration_finished
|
|
28
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
|
|
29
|
+
# on :external_org_migration_finished do |data|
|
|
30
|
+
|
|
31
|
+
# A private channel was deleted.
|
|
32
|
+
# @see https://api.slack.com/events/group_deleted
|
|
33
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
|
|
34
|
+
# on :group_deleted do |data|
|
|
35
|
+
|
|
36
|
+
# Determine the current presence status for a list of users.
|
|
37
|
+
# @see https://api.slack.com/events/presence_query
|
|
38
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_query.json
|
|
39
|
+
# on :presence_query do |data|
|
|
40
|
+
|
|
17
41
|
# The membership of an existing User Group has changed.
|
|
18
42
|
# @see https://api.slack.com/events/subteam_members_changed
|
|
19
43
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_members_changed.json
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Stores
|
|
@@ -26,44 +27,59 @@ module Slack
|
|
|
26
27
|
@users = {}
|
|
27
28
|
end
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
@users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
|
|
33
|
-
end
|
|
30
|
+
attrs.users&.each do |data|
|
|
31
|
+
user = Models::User.new(data)
|
|
32
|
+
@users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
|
|
34
33
|
end
|
|
35
34
|
|
|
36
35
|
@channels = {}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
@channels[data.id] = Models::Channel.new(data)
|
|
40
|
-
end
|
|
36
|
+
attrs.channels&.each do |data|
|
|
37
|
+
@channels[data.id] = Models::Channel.new(data)
|
|
41
38
|
end
|
|
42
39
|
|
|
43
40
|
@bots = {}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
@bots[data.id] = Models::Bot.new(data)
|
|
47
|
-
end
|
|
41
|
+
attrs.bots&.each do |data|
|
|
42
|
+
@bots[data.id] = Models::Bot.new(data)
|
|
48
43
|
end
|
|
49
44
|
|
|
50
45
|
@groups = {}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
@groups[data.id] = Models::Group.new(data)
|
|
54
|
-
end
|
|
46
|
+
attrs.groups&.each do |data|
|
|
47
|
+
@groups[data.id] = Models::Group.new(data)
|
|
55
48
|
end
|
|
56
49
|
|
|
57
50
|
@ims = {}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
@ims[data.id] = Models::Im.new(data)
|
|
61
|
-
end
|
|
51
|
+
attrs.ims&.each do |data|
|
|
52
|
+
@ims[data.id] = Models::Im.new(data)
|
|
62
53
|
end
|
|
63
54
|
end
|
|
64
55
|
|
|
65
56
|
### RealTime Events
|
|
66
57
|
|
|
58
|
+
# A shared channel invite was sent to a Slack user.
|
|
59
|
+
# @see https://api.slack.com/events/shared_channel_invite_received
|
|
60
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/shared_channel_invite_received.json
|
|
61
|
+
# on :shared_channel_invite_received do |data|
|
|
62
|
+
|
|
63
|
+
# An enterprise grid migration has started on an external workspace..
|
|
64
|
+
# @see https://api.slack.com/events/external_org_migration_started
|
|
65
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
66
|
+
# on :external_org_migration_started do |data|
|
|
67
|
+
|
|
68
|
+
# An enterprise grid migration has finished on an external workspace..
|
|
69
|
+
# @see https://api.slack.com/events/external_org_migration_finished
|
|
70
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
|
|
71
|
+
# on :external_org_migration_finished do |data|
|
|
72
|
+
|
|
73
|
+
# A private channel was deleted.
|
|
74
|
+
# @see https://api.slack.com/events/group_deleted
|
|
75
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
|
|
76
|
+
# on :group_deleted do |data|
|
|
77
|
+
|
|
78
|
+
# Determine the current presence status for a list of users.
|
|
79
|
+
# @see https://api.slack.com/events/presence_query
|
|
80
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_query.json
|
|
81
|
+
# on :presence_query do |data|
|
|
82
|
+
|
|
67
83
|
# The membership of an existing User Group has changed.
|
|
68
84
|
# @see https://api.slack.com/events/subteam_members_changed
|
|
69
85
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_members_changed.json
|
|
@@ -141,7 +157,7 @@ module Slack
|
|
|
141
157
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
|
|
142
158
|
on :bot_changed do |data|
|
|
143
159
|
bot = bots[data.bot.id]
|
|
144
|
-
bot
|
|
160
|
+
bot&.merge!(data.bot)
|
|
145
161
|
end
|
|
146
162
|
|
|
147
163
|
# A team channel was archived.
|
|
@@ -323,7 +339,7 @@ module Slack
|
|
|
323
339
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
|
|
324
340
|
on :group_left do |data|
|
|
325
341
|
channel = groups[data.channel]
|
|
326
|
-
channel.members.delete(self.self.id) if channel
|
|
342
|
+
channel.members.delete(self.self.id) if channel&.key?(:members)
|
|
327
343
|
end
|
|
328
344
|
|
|
329
345
|
# A private group read marker was updated.
|
|
@@ -358,7 +374,8 @@ module Slack
|
|
|
358
374
|
# @see https://api.slack.com/events/im_close
|
|
359
375
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
|
|
360
376
|
on :im_close do |data|
|
|
361
|
-
return unless ims
|
|
377
|
+
return unless ims&.key?(data.channel)
|
|
378
|
+
|
|
362
379
|
ims[data.channel].is_open = false
|
|
363
380
|
end
|
|
364
381
|
|
|
@@ -383,7 +400,8 @@ module Slack
|
|
|
383
400
|
# @see https://api.slack.com/events/im_open
|
|
384
401
|
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
|
|
385
402
|
on :im_open do |data|
|
|
386
|
-
return unless ims
|
|
403
|
+
return unless ims&.key?(data.channel)
|
|
404
|
+
|
|
387
405
|
ims[data.channel].is_open = true
|
|
388
406
|
end
|
|
389
407
|
|
data/lib/slack/version.rb
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
|
3
|
+
|
|
4
|
+
module Slack
|
|
5
|
+
module Web
|
|
6
|
+
module Api
|
|
7
|
+
module Endpoints
|
|
8
|
+
module AdminAnalytics
|
|
9
|
+
#
|
|
10
|
+
# Retrieve analytics data for a given date, presented as a compressed JSON file
|
|
11
|
+
#
|
|
12
|
+
# @option options [string] :type
|
|
13
|
+
# The type of analytics to retrieve. The options are currently limited to member (for grid member analytics) and public_channel (for public channel analytics).
|
|
14
|
+
# @option options [date] :date
|
|
15
|
+
# Date to retrieve the analytics data for, expressed as YYYY-MM-DD in UTC.
|
|
16
|
+
# @option options [boolean] :metadata_only
|
|
17
|
+
# Retrieve metadata for the type of analytics indicated. Can be used only with type set to public_channel analytics. See detail below. Omit the date parameter when using this argument.
|
|
18
|
+
# @see https://api.slack.com/methods/admin.analytics.getFile
|
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.analytics/admin.analytics.getFile.json
|
|
20
|
+
def admin_analytics_getFile(options = {})
|
|
21
|
+
throw ArgumentError.new('Required arguments :type missing') if options[:type].nil?
|
|
22
|
+
post('admin.analytics.getFile', options)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
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 AdminApps
|
|
9
|
+
#
|
|
10
|
+
# Approve an app for installation on a workspace.
|
|
11
|
+
#
|
|
12
|
+
# @option options [string] :app_id
|
|
13
|
+
# The id of the app to approve.
|
|
14
|
+
# @option options [Object] :enterprise_id
|
|
15
|
+
# The ID of the enterprise to approve the app on.
|
|
16
|
+
# @option options [string] :request_id
|
|
17
|
+
# The id of the request to approve.
|
|
18
|
+
# @option options [Object] :team_id
|
|
19
|
+
# The ID of the workspace to approve the app on.
|
|
20
|
+
# @see https://api.slack.com/methods/admin.apps.approve
|
|
21
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.approve.json
|
|
22
|
+
def admin_apps_approve(options = {})
|
|
23
|
+
post('admin.apps.approve', options)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
#
|
|
27
|
+
# Clear an app resolution
|
|
28
|
+
#
|
|
29
|
+
# @option options [string] :app_id
|
|
30
|
+
# The id of the app whose resolution you want to clear/undo.
|
|
31
|
+
# @option options [Object] :enterprise_id
|
|
32
|
+
# The enterprise to clear the app resolution from.
|
|
33
|
+
# @option options [Object] :team_id
|
|
34
|
+
# The workspace to clear the app resolution from.
|
|
35
|
+
# @see https://api.slack.com/methods/admin.apps.clearResolution
|
|
36
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.clearResolution.json
|
|
37
|
+
def admin_apps_clearResolution(options = {})
|
|
38
|
+
throw ArgumentError.new('Required arguments :app_id missing') if options[:app_id].nil?
|
|
39
|
+
post('admin.apps.clearResolution', options)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
#
|
|
43
|
+
# Restrict an app for installation on a workspace.
|
|
44
|
+
#
|
|
45
|
+
# @option options [string] :app_id
|
|
46
|
+
# The id of the app to restrict.
|
|
47
|
+
# @option options [Object] :enterprise_id
|
|
48
|
+
# The ID of the enterprise to approve the app on.
|
|
49
|
+
# @option options [string] :request_id
|
|
50
|
+
# The id of the request to restrict.
|
|
51
|
+
# @option options [Object] :team_id
|
|
52
|
+
# The ID of the workspace to approve the app on.
|
|
53
|
+
# @see https://api.slack.com/methods/admin.apps.restrict
|
|
54
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.restrict.json
|
|
55
|
+
def admin_apps_restrict(options = {})
|
|
56
|
+
post('admin.apps.restrict', options)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
#
|
|
60
|
+
# Uninstall an app from one or many workspaces, or an entire enterprise organization.
|
|
61
|
+
#
|
|
62
|
+
# @option options [string] :app_id
|
|
63
|
+
# The ID of the app to uninstall.
|
|
64
|
+
# @option options [string] :enterprise_id
|
|
65
|
+
# The enterprise to completely uninstall the application from (across all workspaces). With an org-level token, this or team_ids is required.
|
|
66
|
+
# @option options [string] :team_ids
|
|
67
|
+
# IDs of the teams to uninstall from (max 100). With an org-level token, this or enterprise_id is required.
|
|
68
|
+
# @see https://api.slack.com/methods/admin.apps.uninstall
|
|
69
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.uninstall.json
|
|
70
|
+
def admin_apps_uninstall(options = {})
|
|
71
|
+
throw ArgumentError.new('Required arguments :app_id missing') if options[:app_id].nil?
|
|
72
|
+
post('admin.apps.uninstall', options)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
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 AdminAppsApproved
|
|
9
|
+
#
|
|
10
|
+
# List approved apps for an org or workspace.
|
|
11
|
+
#
|
|
12
|
+
# @option options [string] :cursor
|
|
13
|
+
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
14
|
+
# @option options [Object] :enterprise_id
|
|
15
|
+
# .
|
|
16
|
+
# @option options [integer] :limit
|
|
17
|
+
# The maximum number of items to return. Must be between 1 - 1000 both inclusive.
|
|
18
|
+
# @option options [Object] :team_id
|
|
19
|
+
# .
|
|
20
|
+
# @see https://api.slack.com/methods/admin.apps.approved.list
|
|
21
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.approved/admin.apps.approved.list.json
|
|
22
|
+
def admin_apps_approved_list(options = {})
|
|
23
|
+
if block_given?
|
|
24
|
+
Pagination::Cursor.new(self, :admin_apps_approved_list, options).each do |page|
|
|
25
|
+
yield page
|
|
26
|
+
end
|
|
27
|
+
else
|
|
28
|
+
post('admin.apps.approved.list', options)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
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 AdminAppsRequests
|
|
9
|
+
#
|
|
10
|
+
# Cancel approval request for team
|
|
11
|
+
#
|
|
12
|
+
# @option options [string] :request_id
|
|
13
|
+
# The id of the request to cancel.
|
|
14
|
+
# @option options [Object] :enterprise_id
|
|
15
|
+
# The ID of the enterprise where this request belongs.
|
|
16
|
+
# @option options [Object] :team_id
|
|
17
|
+
# The ID of the workspace where this request belongs.
|
|
18
|
+
# @see https://api.slack.com/methods/admin.apps.requests.cancel
|
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.requests/admin.apps.requests.cancel.json
|
|
20
|
+
def admin_apps_requests_cancel(options = {})
|
|
21
|
+
throw ArgumentError.new('Required arguments :request_id missing') if options[:request_id].nil?
|
|
22
|
+
post('admin.apps.requests.cancel', options)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
#
|
|
26
|
+
# List app requests for a team/workspace.
|
|
27
|
+
#
|
|
28
|
+
# @option options [string] :cursor
|
|
29
|
+
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
30
|
+
# @option options [Object] :enterprise_id
|
|
31
|
+
# .
|
|
32
|
+
# @option options [integer] :limit
|
|
33
|
+
# The maximum number of items to return. Must be between 1 - 1000 both inclusive.
|
|
34
|
+
# @option options [Object] :team_id
|
|
35
|
+
# .
|
|
36
|
+
# @see https://api.slack.com/methods/admin.apps.requests.list
|
|
37
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.requests/admin.apps.requests.list.json
|
|
38
|
+
def admin_apps_requests_list(options = {})
|
|
39
|
+
if block_given?
|
|
40
|
+
Pagination::Cursor.new(self, :admin_apps_requests_list, options).each do |page|
|
|
41
|
+
yield page
|
|
42
|
+
end
|
|
43
|
+
else
|
|
44
|
+
post('admin.apps.requests.list', options)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
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 AdminAppsRestricted
|
|
9
|
+
#
|
|
10
|
+
# List restricted apps for an org or workspace.
|
|
11
|
+
#
|
|
12
|
+
# @option options [string] :cursor
|
|
13
|
+
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
14
|
+
# @option options [Object] :enterprise_id
|
|
15
|
+
# .
|
|
16
|
+
# @option options [integer] :limit
|
|
17
|
+
# The maximum number of items to return. Must be between 1 - 1000 both inclusive.
|
|
18
|
+
# @option options [Object] :team_id
|
|
19
|
+
# .
|
|
20
|
+
# @see https://api.slack.com/methods/admin.apps.restricted.list
|
|
21
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps.restricted/admin.apps.restricted.list.json
|
|
22
|
+
def admin_apps_restricted_list(options = {})
|
|
23
|
+
if block_given?
|
|
24
|
+
Pagination::Cursor.new(self, :admin_apps_restricted_list, options).each do |page|
|
|
25
|
+
yield page
|
|
26
|
+
end
|
|
27
|
+
else
|
|
28
|
+
post('admin.apps.restricted.list', options)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
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 AdminAuthPolicy
|
|
9
|
+
#
|
|
10
|
+
# Assign entities to a particular authentication policy.
|
|
11
|
+
#
|
|
12
|
+
# @option options [array] :entity_ids
|
|
13
|
+
# Array of IDs to assign to the policy.
|
|
14
|
+
# @option options [Object] :entity_type
|
|
15
|
+
# The type of entity to assign to the policy. Currently, USER is supported.
|
|
16
|
+
# @option options [string] :policy_name
|
|
17
|
+
# The name of the authentication policy to assign the entities to. Currently, email_password is the only policy that may be used with this method.
|
|
18
|
+
# @see https://api.slack.com/methods/admin.auth.policy.assignEntities
|
|
19
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.auth.policy/admin.auth.policy.assignEntities.json
|
|
20
|
+
def admin_auth_policy_assignEntities(options = {})
|
|
21
|
+
throw ArgumentError.new('Required arguments :entity_ids missing') if options[:entity_ids].nil?
|
|
22
|
+
throw ArgumentError.new('Required arguments :entity_type missing') if options[:entity_type].nil?
|
|
23
|
+
throw ArgumentError.new('Required arguments :policy_name missing') if options[:policy_name].nil?
|
|
24
|
+
post('admin.auth.policy.assignEntities', options)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
#
|
|
28
|
+
# Fetch all the entities assigned to a particular authentication policy by name.
|
|
29
|
+
#
|
|
30
|
+
# @option options [string] :policy_name
|
|
31
|
+
# The name of the policy to fetch entities for. Currently, email_password is the only policy that may be used with this method.
|
|
32
|
+
# @option options [string] :cursor
|
|
33
|
+
# Set cursor to next_cursor returned by the previous call to list items in the next page.
|
|
34
|
+
# @option options [Object] :entity_type
|
|
35
|
+
# The type of entity to assign to the policy. Currently, USER is supported.
|
|
36
|
+
# @option options [integer] :limit
|
|
37
|
+
# The maximum number of items to return. Must be between 1 and 1000, both inclusive.
|
|
38
|
+
# @see https://api.slack.com/methods/admin.auth.policy.getEntities
|
|
39
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.auth.policy/admin.auth.policy.getEntities.json
|
|
40
|
+
def admin_auth_policy_getEntities(options = {})
|
|
41
|
+
throw ArgumentError.new('Required arguments :policy_name missing') if options[:policy_name].nil?
|
|
42
|
+
if block_given?
|
|
43
|
+
Pagination::Cursor.new(self, :admin_auth_policy_getEntities, options).each do |page|
|
|
44
|
+
yield page
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
post('admin.auth.policy.getEntities', options)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
#
|
|
52
|
+
# Remove specified entities from a specified authentication policy.
|
|
53
|
+
#
|
|
54
|
+
# @option options [array] :entity_ids
|
|
55
|
+
# Encoded IDs of the entities you'd like to remove from the policy.
|
|
56
|
+
# @option options [Object] :entity_type
|
|
57
|
+
# The type of entity to assign to the policy. Currently, USER is supported.
|
|
58
|
+
# @option options [string] :policy_name
|
|
59
|
+
# The name of the policy to remove entities from. Currently, email_password is the only policy that may be used with this method.
|
|
60
|
+
# @see https://api.slack.com/methods/admin.auth.policy.removeEntities
|
|
61
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.auth.policy/admin.auth.policy.removeEntities.json
|
|
62
|
+
def admin_auth_policy_removeEntities(options = {})
|
|
63
|
+
throw ArgumentError.new('Required arguments :entity_ids missing') if options[:entity_ids].nil?
|
|
64
|
+
throw ArgumentError.new('Required arguments :entity_type missing') if options[:entity_type].nil?
|
|
65
|
+
throw ArgumentError.new('Required arguments :policy_name missing') if options[:policy_name].nil?
|
|
66
|
+
post('admin.auth.policy.removeEntities', options)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|