slack-ruby-client 0.14.4 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.rubocop.yml +23 -7
- data/.rubocop_todo.yml +104 -47
- data/.travis.yml +1 -5
- data/CHANGELOG.md +41 -2
- data/CONTRIBUTING.md +17 -6
- data/Dangerfile +2 -1
- data/Gemfile +2 -2
- data/README.md +94 -53
- data/Rakefile +1 -0
- data/UPGRADING.md +20 -2
- data/bin/commands.rb +30 -0
- data/bin/commands/admin_analytics.rb +15 -0
- data/bin/commands/admin_apps.rb +40 -0
- data/bin/commands/admin_apps_approved.rb +17 -0
- data/bin/commands/admin_apps_requests.rb +16 -0
- data/bin/commands/admin_apps_restricted.rb +17 -0
- data/bin/commands/admin_barriers.rb +47 -0
- data/bin/commands/admin_conversations.rb +169 -0
- data/bin/commands/admin_conversations_ekm.rb +17 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
- data/bin/commands/admin_conversations_whitelist.rb +37 -0
- data/bin/commands/admin_emoji.rb +54 -0
- data/bin/commands/admin_inviteRequests.rb +36 -0
- data/bin/commands/admin_inviteRequests_approved.rb +16 -0
- data/bin/commands/admin_inviteRequests_denied.rb +16 -0
- data/bin/commands/admin_teams.rb +27 -0
- data/bin/commands/admin_teams_admins.rb +16 -0
- data/bin/commands/admin_teams_owners.rb +16 -0
- data/bin/commands/admin_teams_settings.rb +64 -0
- data/bin/commands/admin_usergroups.rb +48 -0
- data/bin/commands/admin_users.rb +97 -0
- data/bin/commands/admin_users_session.rb +25 -2
- data/bin/commands/api.rb +3 -3
- data/bin/commands/apps.rb +3 -2
- data/bin/commands/apps_connections.rb +13 -0
- data/bin/commands/apps_event_authorizations.rb +16 -0
- data/bin/commands/apps_permissions.rb +5 -4
- data/bin/commands/apps_permissions_resources.rb +3 -2
- data/bin/commands/apps_permissions_scopes.rb +3 -2
- data/bin/commands/apps_permissions_users.rb +5 -4
- data/bin/commands/auth.rb +5 -4
- data/bin/commands/auth_teams.rb +16 -0
- data/bin/commands/bots.rb +4 -2
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +37 -33
- data/bin/commands/chat.rb +34 -33
- data/bin/commands/chat_scheduledMessages.rb +4 -2
- data/bin/commands/conversations.rb +50 -38
- data/bin/commands/dialog.rb +3 -2
- data/bin/commands/dnd.rb +10 -9
- data/bin/commands/emoji.rb +3 -2
- data/bin/commands/files.rb +16 -13
- data/bin/commands/files_comments.rb +3 -2
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +38 -35
- data/bin/commands/im.rb +14 -13
- data/bin/commands/migration.rb +4 -2
- data/bin/commands/mpim.rb +14 -13
- data/bin/commands/oauth.rb +6 -5
- data/bin/commands/oauth_v2.rb +17 -0
- data/bin/commands/pins.rb +7 -10
- data/bin/commands/reactions.rb +11 -11
- data/bin/commands/reminders.rb +11 -10
- data/bin/commands/rtm.rb +5 -4
- data/bin/commands/search.rb +11 -7
- data/bin/commands/stars.rb +7 -6
- data/bin/commands/team.rb +12 -8
- data/bin/commands/team_profile.rb +3 -2
- data/bin/commands/usergroups.rb +17 -11
- data/bin/commands/usergroups_users.rb +7 -4
- data/bin/commands/users.rb +26 -23
- data/bin/commands/users_admin.rb +1 -0
- data/bin/commands/users_prefs.rb +1 -0
- data/bin/commands/users_profile.rb +6 -5
- data/bin/commands/views.rb +48 -0
- data/bin/commands/workflows.rb +38 -0
- data/bin/slack +1 -2
- data/examples/hi_real_time_and_web/Gemfile +1 -0
- data/examples/hi_real_time_and_web/hi.rb +7 -3
- data/examples/hi_real_time_async_async/Gemfile +1 -0
- data/examples/hi_real_time_async_async/hi.rb +6 -2
- data/examples/hi_web/Gemfile +1 -0
- data/examples/hi_web/hi.rb +1 -0
- data/examples/new_ticket/Gemfile +1 -0
- data/examples/new_ticket/new_ticket.rb +1 -0
- data/lib/slack-ruby-client.rb +6 -4
- data/lib/slack.rb +1 -0
- data/lib/slack/config.rb +1 -0
- data/lib/slack/events/config.rb +1 -0
- data/lib/slack/events/request.rb +8 -2
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +1 -0
- data/lib/slack/messages/message.rb +1 -4
- data/lib/slack/real_time/api/message.rb +3 -1
- data/lib/slack/real_time/api/message_id.rb +1 -0
- data/lib/slack/real_time/api/ping.rb +5 -2
- data/lib/slack/real_time/api/typing.rb +3 -1
- data/lib/slack/real_time/client.rb +21 -13
- data/lib/slack/real_time/concurrency.rb +1 -2
- data/lib/slack/real_time/concurrency/async.rb +12 -6
- data/lib/slack/real_time/config.rb +9 -3
- data/lib/slack/real_time/models.rb +1 -0
- data/lib/slack/real_time/models/base.rb +1 -4
- data/lib/slack/real_time/models/bot.rb +1 -0
- data/lib/slack/real_time/models/channel.rb +1 -0
- data/lib/slack/real_time/models/group.rb +1 -0
- data/lib/slack/real_time/models/im.rb +1 -0
- data/lib/slack/real_time/models/team.rb +1 -0
- data/lib/slack/real_time/models/user.rb +1 -0
- data/lib/slack/real_time/socket.rb +16 -13
- data/lib/slack/real_time/stores.rb +1 -0
- data/lib/slack/real_time/stores/base.rb +4 -1
- data/lib/slack/real_time/stores/starter.rb +1 -0
- data/lib/slack/real_time/stores/store.rb +16 -25
- data/lib/slack/version.rb +2 -1
- data/lib/slack/web/api/endpoints.rb +60 -0
- data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
- data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
- data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
- data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +40 -1
- data/lib/slack/web/api/endpoints/api.rb +2 -3
- data/lib/slack/web/api/endpoints/apps.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
- data/lib/slack/web/api/endpoints/apps_permissions.rb +3 -2
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +2 -1
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +3 -2
- data/lib/slack/web/api/endpoints/auth.rb +3 -2
- data/lib/slack/web/api/endpoints/auth_teams.rb +33 -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 +52 -31
- data/lib/slack/web/api/endpoints/chat.rb +31 -30
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +5 -2
- data/lib/slack/web/api/endpoints/conversations.rb +55 -36
- data/lib/slack/web/api/endpoints/dialog.rb +2 -1
- data/lib/slack/web/api/endpoints/dnd.rb +5 -4
- data/lib/slack/web/api/endpoints/emoji.rb +2 -1
- data/lib/slack/web/api/endpoints/files.rb +13 -8
- data/lib/slack/web/api/endpoints/files_comments.rb +2 -1
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +39 -24
- data/lib/slack/web/api/endpoints/im.rb +17 -12
- data/lib/slack/web/api/endpoints/migration.rb +4 -1
- data/lib/slack/web/api/endpoints/mpim.rb +18 -13
- data/lib/slack/web/api/endpoints/oauth.rb +4 -6
- data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
- data/lib/slack/web/api/endpoints/pins.rb +7 -16
- data/lib/slack/web/api/endpoints/reactions.rb +14 -15
- data/lib/slack/web/api/endpoints/reminders.rb +6 -5
- data/lib/slack/web/api/endpoints/rtm.rb +3 -2
- data/lib/slack/web/api/endpoints/search.rb +10 -3
- data/lib/slack/web/api/endpoints/stars.rb +6 -7
- data/lib/slack/web/api/endpoints/team.rb +11 -5
- data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +16 -5
- data/lib/slack/web/api/endpoints/usergroups_users.rb +7 -2
- data/lib/slack/web/api/endpoints/users.rb +18 -21
- data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +4 -3
- data/lib/slack/web/api/endpoints/views.rb +97 -0
- data/lib/slack/web/api/endpoints/workflows.rb +61 -0
- data/lib/slack/web/api/error.rb +1 -0
- data/lib/slack/web/api/errors.rb +850 -0
- data/lib/slack/web/api/errors/internal_error.rb +14 -0
- data/lib/slack/web/api/errors/slack_error.rb +14 -1
- data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
- data/lib/slack/web/api/mixins.rb +2 -0
- data/lib/slack/web/api/mixins/channels.id.rb +2 -3
- data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
- data/lib/slack/web/api/mixins/groups.id.rb +2 -3
- data/lib/slack/web/api/mixins/ids.id.rb +3 -2
- data/lib/slack/web/api/mixins/users.id.rb +2 -3
- data/lib/slack/web/api/mixins/users.search.rb +1 -0
- data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +29 -26
- data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
- data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
- data/lib/slack/web/api/templates/command.erb +1 -0
- data/lib/slack/web/api/templates/commands.erb +1 -0
- data/lib/slack/web/api/templates/endpoints.erb +2 -0
- data/lib/slack/web/api/templates/errors.erb +20 -0
- data/lib/slack/web/api/templates/method.erb +5 -1
- data/lib/slack/web/api/templates/method_spec.erb +2 -1
- data/lib/slack/web/client.rb +2 -1
- data/lib/slack/web/config.rb +3 -0
- data/lib/slack/web/faraday/connection.rb +24 -20
- data/lib/slack/web/faraday/request.rb +1 -0
- data/lib/slack/web/faraday/response/raise_error.rb +25 -6
- data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
- data/lib/slack/web/pagination/cursor.rb +3 -2
- data/lib/slack_ruby_client.rb +1 -0
- data/lib/tasks/git.rake +1 -0
- data/lib/tasks/real_time.rake +13 -5
- data/lib/tasks/update.rake +1 -0
- data/lib/tasks/web.rake +34 -10
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +6 -3
- data/spec/fixtures/slack/web/channels_info.yml +108 -15
- data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
- data/spec/fixtures/slack/web/views_open_error.yml +76 -0
- data/spec/integration/integration_spec.rb +16 -17
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +8 -4
- data/spec/slack/events/request_spec.rb +74 -40
- data/spec/slack/messages/formatting_spec.rb +25 -13
- data/spec/slack/real_time/api/message_spec.rb +6 -1
- data/spec/slack/real_time/api/ping_spec.rb +2 -0
- data/spec/slack/real_time/api/typing_spec.rb +5 -1
- data/spec/slack/real_time/client_spec.rb +153 -38
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
- data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
- data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
- data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
- data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
- data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
- data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
- data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
- data/spec/slack/real_time/rtm_start_spec.rb +1 -0
- data/spec/slack/real_time/store_spec.rb +2 -1
- data/spec/slack/slack_spec.rb +37 -5
- data/spec/slack/version_spec.rb +2 -1
- data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
- data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
- data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -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 +9 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
- data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
- data/spec/slack/web/api/endpoints/apps_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
- data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/conversations_spec.rb +21 -12
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +80 -25
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
- data/spec/slack/web/api/endpoints/dnd_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/files_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/oauth_spec.rb +4 -14
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
- data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
- data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
- data/spec/slack/web/api/error_spec.rb +4 -2
- data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
- data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
- data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
- data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
- data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
- data/spec/slack/web/api/mixins/users_spec.rb +17 -8
- data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
- data/spec/slack/web/client_spec.rb +171 -18
- data/spec/slack/web/faraday/response/raise_error_spec.rb +47 -12
- data/spec/spec_helper.rb +2 -1
- data/spec/support/queue_with_timeout.rb +1 -0
- data/spec/support/real_time/concurrency/mock.rb +1 -0
- data/spec/support/real_time/connected_client.rb +9 -3
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +5 -0
- metadata +190 -46
- data/examples/hi_real_time/Gemfile +0 -5
- data/examples/hi_real_time/hi.gif +0 -0
- data/examples/hi_real_time/hi.rb +0 -37
- data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
- data/examples/hi_real_time_async_celluloid/Procfile +0 -2
- data/examples/hi_real_time_async_celluloid/hi.rb +0 -35
- data/examples/hi_real_time_async_eventmachine/Gemfile +0 -6
- data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
- data/examples/hi_real_time_async_eventmachine/hi.rb +0 -35
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -136
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -82
- data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
- data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
- data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
- data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
- data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -15
- data/screenshots/register-bot.png +0 -0
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -111
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -49
- data/spec/slack/web/api/errors/service_unavailable_spec.rb +0 -14
@@ -1,23 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# This file was auto-generated by lib/tasks/web.rake
|
2
3
|
|
3
4
|
desc 'UsergroupsUsers methods.'
|
4
5
|
command 'usergroups_users' do |g|
|
5
|
-
g.desc '
|
6
|
-
g.long_desc %(
|
6
|
+
g.desc 'List all users in a User Group'
|
7
|
+
g.long_desc %( List all users in a User Group )
|
7
8
|
g.command 'list' do |c|
|
8
9
|
c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
|
9
10
|
c.flag 'include_disabled', desc: 'Allow results that involve disabled User Groups.'
|
11
|
+
c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
|
10
12
|
c.action do |_global_options, options, _args|
|
11
13
|
puts JSON.dump($client.usergroups_users_list(options))
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
|
-
g.desc '
|
16
|
-
g.long_desc %(
|
17
|
+
g.desc 'Update the list of users for a User Group'
|
18
|
+
g.long_desc %( Update the list of users for a User Group )
|
17
19
|
g.command 'update' do |c|
|
18
20
|
c.flag 'usergroup', desc: 'The encoded ID of the User Group to update.'
|
19
21
|
c.flag 'users', desc: 'A comma separated string of encoded user IDs that represent the entire list of users for the User Group.'
|
20
22
|
c.flag 'include_count', desc: 'Include the number of users in the User Group.'
|
23
|
+
c.flag 'team_id', desc: 'encoded team id where the user group exists, required if org token is used.'
|
21
24
|
c.action do |_global_options, options, _args|
|
22
25
|
puts JSON.dump($client.usergroups_users_update(options))
|
23
26
|
end
|
data/bin/commands/users.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# This file was auto-generated by lib/tasks/web.rake
|
2
3
|
|
3
|
-
desc '
|
4
|
+
desc 'Get info on members of your Slack team.'
|
4
5
|
command 'users' do |g|
|
5
|
-
g.desc '
|
6
|
-
g.long_desc %(
|
6
|
+
g.desc 'List conversations the calling user may access.'
|
7
|
+
g.long_desc %( List conversations the calling user may access. )
|
7
8
|
g.command 'conversations' do |c|
|
8
9
|
c.flag 'cursor', desc: "Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first 'page' of the collection. See pagination for more detail."
|
9
10
|
c.flag 'exclude_archived', desc: 'Set to true to exclude archived channels from the list.'
|
10
11
|
c.flag 'limit', desc: "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. Must be an integer no larger than 1000."
|
12
|
+
c.flag 'team_id', desc: 'encoded team id to list conversations in, required if org token is used.'
|
11
13
|
c.flag 'types', desc: 'Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.'
|
12
14
|
c.flag 'user', desc: "Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership."
|
13
15
|
c.action do |_global_options, options, _args|
|
@@ -15,16 +17,16 @@ command 'users' do |g|
|
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
|
-
g.desc '
|
19
|
-
g.long_desc %(
|
20
|
+
g.desc 'Delete the user profile photo'
|
21
|
+
g.long_desc %( Delete the user profile photo )
|
20
22
|
g.command 'deletePhoto' do |c|
|
21
23
|
c.action do |_global_options, options, _args|
|
22
24
|
puts JSON.dump($client.users_deletePhoto(options))
|
23
25
|
end
|
24
26
|
end
|
25
27
|
|
26
|
-
g.desc
|
27
|
-
g.long_desc %(
|
28
|
+
g.desc 'Gets user presence information.'
|
29
|
+
g.long_desc %( Gets user presence information. )
|
28
30
|
g.command 'getPresence' do |c|
|
29
31
|
c.flag 'user', desc: 'User to get presence info on. Defaults to the authed user.'
|
30
32
|
c.action do |_global_options, options, _args|
|
@@ -41,16 +43,16 @@ command 'users' do |g|
|
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
|
-
g.desc "
|
45
|
-
g.long_desc %(
|
46
|
+
g.desc "Get a user's identity."
|
47
|
+
g.long_desc %( Get a user's identity. )
|
46
48
|
g.command 'identity' do |c|
|
47
49
|
c.action do |_global_options, options, _args|
|
48
50
|
puts JSON.dump($client.users_identity(options))
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
52
|
-
g.desc '
|
53
|
-
g.long_desc %(
|
54
|
+
g.desc 'Gets information about a user.'
|
55
|
+
g.long_desc %( Gets information about a user. )
|
54
56
|
g.command 'info' do |c|
|
55
57
|
c.flag 'user', desc: 'User to get info on.'
|
56
58
|
c.flag 'include_locale', desc: 'Set this to true to receive the locale for this user. Defaults to false.'
|
@@ -59,19 +61,20 @@ command 'users' do |g|
|
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
62
|
-
g.desc '
|
63
|
-
g.long_desc %(
|
64
|
+
g.desc 'Lists all users in a Slack team.'
|
65
|
+
g.long_desc %( Lists all users in a Slack team. )
|
64
66
|
g.command 'list' do |c|
|
65
67
|
c.flag 'cursor', desc: "Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first 'page' of the collection. See pagination for more detail."
|
66
68
|
c.flag 'include_locale', desc: 'Set this to true to receive the locale for users. Defaults to false.'
|
67
|
-
c.flag 'limit', desc: "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached."
|
69
|
+
c.flag 'limit', desc: "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached. Providing no limit value will result in Slack attempting to deliver you the entire result set. If the collection is too large you may experience limit_required or HTTP 500 errors."
|
70
|
+
c.flag 'team_id', desc: 'encoded team id to list users in, required if org token is used.'
|
68
71
|
c.action do |_global_options, options, _args|
|
69
72
|
puts JSON.dump($client.users_list(options))
|
70
73
|
end
|
71
74
|
end
|
72
75
|
|
73
|
-
g.desc '
|
74
|
-
g.long_desc %(
|
76
|
+
g.desc 'Find a user with an email address.'
|
77
|
+
g.long_desc %( Find a user with an email address. )
|
75
78
|
g.command 'lookupByEmail' do |c|
|
76
79
|
c.flag 'email', desc: 'An email address belonging to a user in the workspace.'
|
77
80
|
c.action do |_global_options, options, _args|
|
@@ -88,28 +91,28 @@ command 'users' do |g|
|
|
88
91
|
end
|
89
92
|
end
|
90
93
|
|
91
|
-
g.desc '
|
92
|
-
g.long_desc %(
|
94
|
+
g.desc 'Marked a user as active. Deprecated and non-functional.'
|
95
|
+
g.long_desc %( Marked a user as active. Deprecated and non-functional. )
|
93
96
|
g.command 'setActive' do |c|
|
94
97
|
c.action do |_global_options, options, _args|
|
95
98
|
puts JSON.dump($client.users_setActive(options))
|
96
99
|
end
|
97
100
|
end
|
98
101
|
|
99
|
-
g.desc '
|
100
|
-
g.long_desc %(
|
102
|
+
g.desc 'Set the user profile photo'
|
103
|
+
g.long_desc %( Set the user profile photo )
|
101
104
|
g.command 'setPhoto' do |c|
|
102
|
-
c.flag 'image', desc: 'File contents via multipart/form-data.'
|
103
105
|
c.flag 'crop_w', desc: 'Width/height of crop box (always square).'
|
104
106
|
c.flag 'crop_x', desc: 'X coordinate of top-left corner of crop box.'
|
105
107
|
c.flag 'crop_y', desc: 'Y coordinate of top-left corner of crop box.'
|
108
|
+
c.flag 'image', desc: 'File contents via multipart/form-data.'
|
106
109
|
c.action do |_global_options, options, _args|
|
107
110
|
puts JSON.dump($client.users_setPhoto(options))
|
108
111
|
end
|
109
112
|
end
|
110
113
|
|
111
|
-
g.desc
|
112
|
-
g.long_desc %(
|
114
|
+
g.desc 'Manually sets user presence.'
|
115
|
+
g.long_desc %( Manually sets user presence. )
|
113
116
|
g.command 'setPresence' do |c|
|
114
117
|
c.flag 'presence', desc: 'Either auto or away.'
|
115
118
|
c.action do |_global_options, options, _args|
|
data/bin/commands/users_admin.rb
CHANGED
data/bin/commands/users_prefs.rb
CHANGED
@@ -1,19 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# This file was auto-generated by lib/tasks/web.rake
|
2
3
|
|
3
4
|
desc 'UsersProfile methods.'
|
4
5
|
command 'users_profile' do |g|
|
5
|
-
g.desc "
|
6
|
-
g.long_desc %(
|
6
|
+
g.desc "Retrieve a user's profile information, including their custom status."
|
7
|
+
g.long_desc %( Retrieve a user's profile information, including their custom status. )
|
7
8
|
g.command 'get' do |c|
|
8
|
-
c.flag 'include_labels', desc: 'Include labels for each ID in custom profile fields.'
|
9
|
+
c.flag 'include_labels', desc: 'Include labels for each ID in custom profile fields. Using this parameter will heavily rate-limit your requests and is not recommended.'
|
9
10
|
c.flag 'user', desc: 'User to retrieve profile info for.'
|
10
11
|
c.action do |_global_options, options, _args|
|
11
12
|
puts JSON.dump($client.users_profile_get(options))
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
15
|
-
g.desc "
|
16
|
-
g.long_desc %(
|
16
|
+
g.desc "Set a user's profile information, including custom status."
|
17
|
+
g.long_desc %( Set a user's profile information, including custom status. )
|
17
18
|
g.command 'set' do |c|
|
18
19
|
c.flag 'name', desc: 'Name of a single key to set. Usable only if profile is not passed.'
|
19
20
|
c.flag 'profile', desc: 'Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters.'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
3
|
+
|
4
|
+
desc 'Views methods.'
|
5
|
+
command 'views' do |g|
|
6
|
+
g.desc 'Open a view for a user.'
|
7
|
+
g.long_desc %( Open a view for a user. )
|
8
|
+
g.command 'open' do |c|
|
9
|
+
c.flag 'trigger_id', desc: 'Exchange a trigger to post to the user.'
|
10
|
+
c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
|
11
|
+
c.action do |_global_options, options, _args|
|
12
|
+
puts JSON.dump($client.views_open(options))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
g.desc 'Publish a static view for a User.'
|
17
|
+
g.long_desc %( Publish a static view for a User. )
|
18
|
+
g.command 'publish' do |c|
|
19
|
+
c.flag 'user_id', desc: 'id of the user you want publish a view to.'
|
20
|
+
c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
|
21
|
+
c.flag 'hash', desc: 'A string that represents view state to protect against possible race conditions.'
|
22
|
+
c.action do |_global_options, options, _args|
|
23
|
+
puts JSON.dump($client.views_publish(options))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
g.desc 'Push a view onto the stack of a root view.'
|
28
|
+
g.long_desc %( Push a view onto the stack of a root view. )
|
29
|
+
g.command 'push' do |c|
|
30
|
+
c.flag 'trigger_id', desc: 'Exchange a trigger to post to the user.'
|
31
|
+
c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
|
32
|
+
c.action do |_global_options, options, _args|
|
33
|
+
puts JSON.dump($client.views_push(options))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
g.desc 'Update an existing view.'
|
38
|
+
g.long_desc %( Update an existing view. )
|
39
|
+
g.command 'update' do |c|
|
40
|
+
c.flag 'view', desc: 'A view object. This must be a JSON-encoded string.'
|
41
|
+
c.flag 'external_id', desc: 'A unique identifier of the view set by the developer. Must be unique for all views on a team. Max length of 255 characters. Either view_id or external_id is required.'
|
42
|
+
c.flag 'hash', desc: 'A string that represents view state to protect against possible race conditions.'
|
43
|
+
c.flag 'view_id', desc: 'A unique identifier of the view to be updated. Either view_id or external_id is required.'
|
44
|
+
c.action do |_global_options, options, _args|
|
45
|
+
puts JSON.dump($client.views_update(options))
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# This file was auto-generated by lib/tasks/web.rake
|
3
|
+
|
4
|
+
desc 'Workflows methods.'
|
5
|
+
command 'workflows' do |g|
|
6
|
+
g.desc "Indicate that an app's step in a workflow completed execution."
|
7
|
+
g.long_desc %( Indicate that an app's step in a workflow completed execution. )
|
8
|
+
g.command 'stepCompleted' do |c|
|
9
|
+
c.flag 'workflow_step_execute_id', desc: 'Context identifier that maps to the correct workflow step execution.'
|
10
|
+
c.flag 'outputs', desc: 'Key-value object of outputs from your step. Keys of this object reflect the configured key properties of your outputs array from your workflow_step object.'
|
11
|
+
c.action do |_global_options, options, _args|
|
12
|
+
puts JSON.dump($client.workflows_stepCompleted(options))
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
g.desc "Indicate that an app's step in a workflow failed to execute."
|
17
|
+
g.long_desc %( Indicate that an app's step in a workflow failed to execute. )
|
18
|
+
g.command 'stepFailed' do |c|
|
19
|
+
c.flag 'error', desc: 'A JSON-based object with a message property that should contain a human readable error message.'
|
20
|
+
c.flag 'workflow_step_execute_id', desc: 'Context identifier that maps to the correct workflow step execution.'
|
21
|
+
c.action do |_global_options, options, _args|
|
22
|
+
puts JSON.dump($client.workflows_stepFailed(options))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
g.desc 'Update the configuration for a workflow step.'
|
27
|
+
g.long_desc %( Update the configuration for a workflow step. )
|
28
|
+
g.command 'updateStep' do |c|
|
29
|
+
c.flag 'workflow_step_edit_id', desc: 'A context identifier provided with view_submission payloads used to call back to workflows.updateStep.'
|
30
|
+
c.flag 'inputs', desc: 'A JSON key-value map of inputs required from a user during configuration. This is the data your app expects to receive when the workflow step starts. Please note: the embedded variable format is set and replaced by the workflow system. You cannot create custom variables that will be replaced at runtime. Read more about variables in workflow steps here.'
|
31
|
+
c.flag 'outputs', desc: 'An JSON array of output objects used during step execution. This is the data your app agrees to provide when your workflow step was executed.'
|
32
|
+
c.flag 'step_image_url', desc: 'An optional field that can be used to override app image that is shown in the Workflow Builder.'
|
33
|
+
c.flag 'step_name', desc: 'An optional field that can be used to override the step name that is shown in the Workflow Builder.'
|
34
|
+
c.action do |_global_options, options, _args|
|
35
|
+
puts JSON.dump($client.workflows_updateStep(options))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/bin/slack
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'slack-ruby-client'
|
2
3
|
|
3
4
|
Slack.configure do |config|
|
@@ -8,15 +9,18 @@ end
|
|
8
9
|
client = Slack::RealTime::Client.new
|
9
10
|
|
10
11
|
client.on :hello do
|
11
|
-
puts
|
12
|
+
puts(
|
13
|
+
"Successfully connected, welcome '#{client.self.name}' " \
|
14
|
+
"to the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
|
15
|
+
)
|
12
16
|
end
|
13
17
|
|
14
18
|
client.on :message do |data|
|
15
19
|
puts data
|
16
20
|
case data.text
|
17
|
-
when 'bot hi'
|
21
|
+
when 'bot hi'
|
18
22
|
client.web_client.chat_postMessage channel: data.channel, text: "Hi <@#{data.user}>!"
|
19
|
-
when /^bot/
|
23
|
+
when /^bot/
|
20
24
|
client.web_client.chat_postMessage channel: data.channel, text: "Sorry <@#{data.user}>, what?"
|
21
25
|
end
|
22
26
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require 'slack-ruby-client'
|
2
3
|
require 'async'
|
3
4
|
|
@@ -15,7 +16,10 @@ ENV['SLACK_API_TOKENS'].split.each do |token|
|
|
15
16
|
client = Slack::RealTime::Client.new(token: token)
|
16
17
|
|
17
18
|
client.on :hello do
|
18
|
-
logger.info
|
19
|
+
logger.info(
|
20
|
+
"Successfully connected, welcome '#{client.self.name}' to " \
|
21
|
+
"the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
|
22
|
+
)
|
19
23
|
end
|
20
24
|
|
21
25
|
client.on :message do |data|
|
@@ -24,7 +28,7 @@ ENV['SLACK_API_TOKENS'].split.each do |token|
|
|
24
28
|
client.typing channel: data.channel
|
25
29
|
|
26
30
|
case data.text
|
27
|
-
when /hi/
|
31
|
+
when /hi/
|
28
32
|
client.message channel: data.channel, text: "Hi <@#{data.user}>!"
|
29
33
|
else
|
30
34
|
client.message channel: data.channel, text: "Sorry <@#{data.user}>, what?"
|
data/examples/hi_web/Gemfile
CHANGED
data/examples/hi_web/hi.rb
CHANGED
data/examples/new_ticket/Gemfile
CHANGED
data/lib/slack-ruby-client.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require_relative 'slack/version'
|
2
3
|
require_relative 'slack/logger'
|
3
4
|
require_relative 'slack/config'
|
@@ -14,19 +15,22 @@ require 'json'
|
|
14
15
|
require 'logger'
|
15
16
|
begin
|
16
17
|
require 'picky'
|
17
|
-
rescue LoadError
|
18
|
+
rescue LoadError # rubocop:disable Lint/SuppressedException
|
18
19
|
# ignore, only used in users_search
|
19
20
|
end
|
20
21
|
begin
|
21
22
|
require 'openssl'
|
22
|
-
rescue LoadError
|
23
|
+
rescue LoadError # rubocop:disable Lint/SuppressedException
|
23
24
|
# Used in slack/web/config
|
24
25
|
end
|
25
26
|
require_relative 'slack/web/config'
|
26
27
|
require_relative 'slack/web/api/errors/slack_error'
|
27
28
|
require_relative 'slack/web/api/errors/too_many_requests_error'
|
28
29
|
require_relative 'slack/web/api/error'
|
30
|
+
require_relative 'slack/web/api/errors'
|
31
|
+
require_relative 'slack/web/api/errors/internal_error'
|
29
32
|
require_relative 'slack/web/faraday/response/raise_error'
|
33
|
+
require_relative 'slack/web/faraday/response/wrap_error'
|
30
34
|
require_relative 'slack/web/faraday/connection'
|
31
35
|
require_relative 'slack/web/faraday/request'
|
32
36
|
require_relative 'slack/web/api/mixins'
|
@@ -35,8 +39,6 @@ require_relative 'slack/web/pagination/cursor'
|
|
35
39
|
require_relative 'slack/web/client'
|
36
40
|
|
37
41
|
# RealTime API
|
38
|
-
require 'active_support'
|
39
|
-
require 'active_support/core_ext'
|
40
42
|
require_relative 'slack/real_time/concurrency'
|
41
43
|
require_relative 'slack/real_time/socket'
|
42
44
|
require_relative 'slack/real_time/api/message_id'
|
data/lib/slack.rb
CHANGED
data/lib/slack/config.rb
CHANGED
data/lib/slack/events/config.rb
CHANGED
data/lib/slack/events/request.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
module Slack
|
2
3
|
module Events
|
3
4
|
class Request
|
@@ -12,7 +13,8 @@ module Slack
|
|
12
13
|
def initialize(http_request, options = {})
|
13
14
|
@http_request = http_request
|
14
15
|
@signing_secret = options[:signing_secret] || Slack::Events.config.signing_secret
|
15
|
-
@signature_expires_in =
|
16
|
+
@signature_expires_in =
|
17
|
+
options[:signature_expires_in] || Slack::Events.config.signature_expires_in
|
16
18
|
end
|
17
19
|
|
18
20
|
# Request timestamp.
|
@@ -33,7 +35,11 @@ module Slack
|
|
33
35
|
|
34
36
|
# Request body.
|
35
37
|
def body
|
36
|
-
@body ||=
|
38
|
+
@body ||= begin
|
39
|
+
body = http_request.body.read
|
40
|
+
http_request.body.rewind
|
41
|
+
body
|
42
|
+
end
|
37
43
|
end
|
38
44
|
|
39
45
|
# Returns true if the signature coming from Slack has expired.
|