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
@@ -1,117 +0,0 @@
|
|
1
|
-
require 'websocket/driver'
|
2
|
-
require 'socket'
|
3
|
-
require 'forwardable'
|
4
|
-
require 'celluloid/current'
|
5
|
-
require 'celluloid/io'
|
6
|
-
|
7
|
-
module Slack
|
8
|
-
module RealTime
|
9
|
-
module Concurrency
|
10
|
-
module Celluloid
|
11
|
-
class Socket < Slack::RealTime::Socket
|
12
|
-
include ::Celluloid::IO
|
13
|
-
include ::Celluloid::Internals::Logger
|
14
|
-
|
15
|
-
BLOCK_SIZE = 4096
|
16
|
-
|
17
|
-
extend ::Forwardable
|
18
|
-
def_delegators :driver, :text, :binary
|
19
|
-
|
20
|
-
attr_reader :socket
|
21
|
-
|
22
|
-
def initialize(*args)
|
23
|
-
super
|
24
|
-
end
|
25
|
-
|
26
|
-
def connect!
|
27
|
-
super
|
28
|
-
run_loop
|
29
|
-
end
|
30
|
-
|
31
|
-
def run_loop
|
32
|
-
@closing = false
|
33
|
-
@socket = build_socket
|
34
|
-
@connected = @socket.connect
|
35
|
-
driver.start
|
36
|
-
loop { read } if socket
|
37
|
-
rescue EOFError, Errno::EPIPE => e
|
38
|
-
logger.debug("#{self.class}##{__method__}") { e }
|
39
|
-
driver.emit(:close, WebSocket::Driver::CloseEvent.new(1001, 'server closed connection')) unless @closing
|
40
|
-
ensure
|
41
|
-
begin
|
42
|
-
current_actor.terminate if current_actor.alive?
|
43
|
-
rescue
|
44
|
-
nil
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def close
|
49
|
-
@closing = true
|
50
|
-
driver.close
|
51
|
-
super
|
52
|
-
end
|
53
|
-
|
54
|
-
def read
|
55
|
-
buffer = socket.readpartial(BLOCK_SIZE)
|
56
|
-
async.handle_read(buffer)
|
57
|
-
end
|
58
|
-
|
59
|
-
def handle_read(buffer)
|
60
|
-
logger.debug("#{self.class}##{__method__}") { buffer }
|
61
|
-
driver.parse buffer
|
62
|
-
end
|
63
|
-
|
64
|
-
def write(data)
|
65
|
-
logger.debug("#{self.class}##{__method__}") { data }
|
66
|
-
socket.write(data)
|
67
|
-
end
|
68
|
-
|
69
|
-
def start_async(client)
|
70
|
-
@client = client
|
71
|
-
Actor.new(future.run_client_loop)
|
72
|
-
end
|
73
|
-
|
74
|
-
def run_client_loop
|
75
|
-
@client.run_loop
|
76
|
-
end
|
77
|
-
|
78
|
-
def connected?
|
79
|
-
!@connected.nil?
|
80
|
-
end
|
81
|
-
|
82
|
-
protected
|
83
|
-
|
84
|
-
class Actor
|
85
|
-
attr_reader :future
|
86
|
-
|
87
|
-
def initialize(future)
|
88
|
-
@future = future
|
89
|
-
end
|
90
|
-
|
91
|
-
def join
|
92
|
-
@future.value
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def build_socket
|
97
|
-
socket = ::Celluloid::IO::TCPSocket.new(addr, port)
|
98
|
-
socket = ::Celluloid::IO::SSLSocket.new(socket, build_ssl_context) if secure?
|
99
|
-
socket
|
100
|
-
end
|
101
|
-
|
102
|
-
def build_ssl_context
|
103
|
-
OpenSSL::SSL::SSLContext.new(:TLSv1_2_client)
|
104
|
-
end
|
105
|
-
|
106
|
-
def build_driver
|
107
|
-
::WebSocket::Driver.client(self)
|
108
|
-
end
|
109
|
-
|
110
|
-
def connect
|
111
|
-
@driver = build_driver
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'faye/websocket'
|
2
|
-
require 'eventmachine'
|
3
|
-
|
4
|
-
module Slack
|
5
|
-
module RealTime
|
6
|
-
module Concurrency
|
7
|
-
module Eventmachine
|
8
|
-
class Client < Faye::WebSocket::Client
|
9
|
-
attr_reader :logger
|
10
|
-
protected :logger
|
11
|
-
|
12
|
-
def initialize(url, protocols = nil, options = {})
|
13
|
-
@logger = options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger
|
14
|
-
super
|
15
|
-
end
|
16
|
-
|
17
|
-
def parse(data)
|
18
|
-
logger.debug("#{self.class}##{__method__}") { data }
|
19
|
-
super data
|
20
|
-
end
|
21
|
-
|
22
|
-
def write(data)
|
23
|
-
logger.debug("#{self.class}##{__method__}") { data }
|
24
|
-
super data
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
class Socket < Slack::RealTime::Socket
|
29
|
-
def start_async(client)
|
30
|
-
thread = ensure_reactor_running
|
31
|
-
|
32
|
-
client.run_loop
|
33
|
-
|
34
|
-
thread
|
35
|
-
end
|
36
|
-
|
37
|
-
def send_data(message)
|
38
|
-
logger.debug("#{self.class}##{__method__}") { message }
|
39
|
-
driver.send(message)
|
40
|
-
end
|
41
|
-
|
42
|
-
protected
|
43
|
-
|
44
|
-
# @return [Thread]
|
45
|
-
def ensure_reactor_running
|
46
|
-
return if EventMachine.reactor_running?
|
47
|
-
|
48
|
-
reactor = Thread.new { EventMachine.run }
|
49
|
-
Thread.pass until EventMachine.reactor_running?
|
50
|
-
reactor
|
51
|
-
end
|
52
|
-
|
53
|
-
def connect
|
54
|
-
@driver = Client.new(url, nil, options.merge(logger: logger))
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# This file was auto-generated by lib/tasks/web.rake
|
2
|
-
|
3
|
-
module Slack
|
4
|
-
module Web
|
5
|
-
module Api
|
6
|
-
module Endpoints
|
7
|
-
module AppsPermissions
|
8
|
-
#
|
9
|
-
# Returns list of permissions this app has on a team.
|
10
|
-
#
|
11
|
-
# @see https://api.slack.com/methods/apps.permissions.info
|
12
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.permissions/apps.permissions.info.json
|
13
|
-
def apps_permissions_info(options = {})
|
14
|
-
post('apps.permissions.info', options)
|
15
|
-
end
|
16
|
-
|
17
|
-
#
|
18
|
-
# Allows an app to request additional scopes
|
19
|
-
#
|
20
|
-
# @option options [Object] :scopes
|
21
|
-
# A comma separated list of scopes to request for.
|
22
|
-
# @option options [Object] :trigger_id
|
23
|
-
# Token used to trigger the permissions API.
|
24
|
-
# @see https://api.slack.com/methods/apps.permissions.request
|
25
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/apps.permissions/apps.permissions.request.json
|
26
|
-
def apps_permissions_request(options = {})
|
27
|
-
throw ArgumentError.new('Required arguments :scopes missing') if options[:scopes].nil?
|
28
|
-
throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
|
29
|
-
post('apps.permissions.request', options)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,265 +0,0 @@
|
|
1
|
-
# This file was auto-generated by lib/tasks/web.rake
|
2
|
-
|
3
|
-
module Slack
|
4
|
-
module Web
|
5
|
-
module Api
|
6
|
-
module Endpoints
|
7
|
-
module Channels
|
8
|
-
#
|
9
|
-
# Archives a channel.
|
10
|
-
#
|
11
|
-
# @option options [channel] :channel
|
12
|
-
# Channel to archive.
|
13
|
-
# @see https://api.slack.com/methods/channels.archive
|
14
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.archive.json
|
15
|
-
def channels_archive(options = {})
|
16
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
17
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
18
|
-
post('channels.archive', options)
|
19
|
-
end
|
20
|
-
|
21
|
-
#
|
22
|
-
# Creates a channel.
|
23
|
-
#
|
24
|
-
# @option options [Object] :name
|
25
|
-
# Name of channel to create.
|
26
|
-
# @option options [Object] :validate
|
27
|
-
# Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
|
28
|
-
# @see https://api.slack.com/methods/channels.create
|
29
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.create.json
|
30
|
-
def channels_create(options = {})
|
31
|
-
throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
|
32
|
-
post('channels.create', options)
|
33
|
-
end
|
34
|
-
|
35
|
-
#
|
36
|
-
# Delete a channel (undocumented)
|
37
|
-
#
|
38
|
-
# @option options [channel] :channel
|
39
|
-
# Channel to delete.
|
40
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/channels/channels.delete.json
|
41
|
-
def channels_delete(options = {})
|
42
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
43
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
44
|
-
post('channels.delete', options)
|
45
|
-
end
|
46
|
-
|
47
|
-
#
|
48
|
-
# Fetches history of messages and events from a channel.
|
49
|
-
#
|
50
|
-
# @option options [channel] :channel
|
51
|
-
# Channel to fetch history for.
|
52
|
-
# @option options [Object] :inclusive
|
53
|
-
# Include messages with latest or oldest timestamp in results.
|
54
|
-
# @option options [timestamp] :latest
|
55
|
-
# End of time range of messages to include in results.
|
56
|
-
# @option options [timestamp] :oldest
|
57
|
-
# Start of time range of messages to include in results.
|
58
|
-
# @option options [Object] :unreads
|
59
|
-
# Include unread_count_display in the output?.
|
60
|
-
# @see https://api.slack.com/methods/channels.history
|
61
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.history.json
|
62
|
-
def channels_history(options = {})
|
63
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
64
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
65
|
-
post('channels.history', options)
|
66
|
-
end
|
67
|
-
|
68
|
-
#
|
69
|
-
# Gets information about a channel.
|
70
|
-
#
|
71
|
-
# @option options [channel] :channel
|
72
|
-
# Channel to get info on.
|
73
|
-
# @option options [Object] :include_locale
|
74
|
-
# Set this to true to receive the locale for this channel. Defaults to false.
|
75
|
-
# @see https://api.slack.com/methods/channels.info
|
76
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.info.json
|
77
|
-
def channels_info(options = {})
|
78
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
79
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
80
|
-
post('channels.info', options)
|
81
|
-
end
|
82
|
-
|
83
|
-
#
|
84
|
-
# Invites a user to a channel.
|
85
|
-
#
|
86
|
-
# @option options [channel] :channel
|
87
|
-
# Channel to invite user to.
|
88
|
-
# @option options [user] :user
|
89
|
-
# User to invite to channel.
|
90
|
-
# @see https://api.slack.com/methods/channels.invite
|
91
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.invite.json
|
92
|
-
def channels_invite(options = {})
|
93
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
94
|
-
throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
|
95
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
96
|
-
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
97
|
-
post('channels.invite', options)
|
98
|
-
end
|
99
|
-
|
100
|
-
#
|
101
|
-
# Joins a channel, creating it if needed.
|
102
|
-
#
|
103
|
-
# @option options [Object] :name
|
104
|
-
# Name of channel to join.
|
105
|
-
# @option options [Object] :validate
|
106
|
-
# Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
|
107
|
-
# @see https://api.slack.com/methods/channels.join
|
108
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.join.json
|
109
|
-
def channels_join(options = {})
|
110
|
-
throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
|
111
|
-
post('channels.join', options)
|
112
|
-
end
|
113
|
-
|
114
|
-
#
|
115
|
-
# Removes a user from a channel.
|
116
|
-
#
|
117
|
-
# @option options [channel] :channel
|
118
|
-
# Channel to remove user from.
|
119
|
-
# @option options [user] :user
|
120
|
-
# User to remove from channel.
|
121
|
-
# @see https://api.slack.com/methods/channels.kick
|
122
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.kick.json
|
123
|
-
def channels_kick(options = {})
|
124
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
125
|
-
throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
|
126
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
127
|
-
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
128
|
-
post('channels.kick', options)
|
129
|
-
end
|
130
|
-
|
131
|
-
#
|
132
|
-
# Leaves a channel.
|
133
|
-
#
|
134
|
-
# @option options [channel] :channel
|
135
|
-
# Channel to leave.
|
136
|
-
# @see https://api.slack.com/methods/channels.leave
|
137
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.leave.json
|
138
|
-
def channels_leave(options = {})
|
139
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
140
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
141
|
-
post('channels.leave', options)
|
142
|
-
end
|
143
|
-
|
144
|
-
#
|
145
|
-
# Lists all channels in a Slack team.
|
146
|
-
#
|
147
|
-
# @option options [Object] :cursor
|
148
|
-
# 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.
|
149
|
-
# @option options [Object] :exclude_archived
|
150
|
-
# Exclude archived channels from the list.
|
151
|
-
# @option options [Object] :exclude_members
|
152
|
-
# Exclude the members collection from each channel.
|
153
|
-
# @option options [Object] :limit
|
154
|
-
# 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.
|
155
|
-
# @see https://api.slack.com/methods/channels.list
|
156
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.list.json
|
157
|
-
def channels_list(options = {})
|
158
|
-
if block_given?
|
159
|
-
Pagination::Cursor.new(self, :channels_list, options).each do |page|
|
160
|
-
yield page
|
161
|
-
end
|
162
|
-
else
|
163
|
-
post('channels.list', options)
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
#
|
168
|
-
# Sets the read cursor in a channel.
|
169
|
-
#
|
170
|
-
# @option options [channel] :channel
|
171
|
-
# Channel to set reading cursor in.
|
172
|
-
# @option options [timestamp] :ts
|
173
|
-
# Timestamp of the most recently seen message.
|
174
|
-
# @see https://api.slack.com/methods/channels.mark
|
175
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.mark.json
|
176
|
-
def channels_mark(options = {})
|
177
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
178
|
-
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
179
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
180
|
-
post('channels.mark', options)
|
181
|
-
end
|
182
|
-
|
183
|
-
#
|
184
|
-
# Renames a channel.
|
185
|
-
#
|
186
|
-
# @option options [channel] :channel
|
187
|
-
# Channel to rename.
|
188
|
-
# @option options [Object] :name
|
189
|
-
# New name for channel.
|
190
|
-
# @option options [Object] :validate
|
191
|
-
# Whether to return errors on invalid channel name instead of modifying it to meet the specified criteria.
|
192
|
-
# @see https://api.slack.com/methods/channels.rename
|
193
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.rename.json
|
194
|
-
def channels_rename(options = {})
|
195
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
196
|
-
throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
|
197
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
198
|
-
post('channels.rename', options)
|
199
|
-
end
|
200
|
-
|
201
|
-
#
|
202
|
-
# Retrieve a thread of messages posted to a channel
|
203
|
-
#
|
204
|
-
# @option options [channel] :channel
|
205
|
-
# Channel to fetch thread from.
|
206
|
-
# @option options [Object] :thread_ts
|
207
|
-
# Unique identifier of a thread's parent message.
|
208
|
-
# @see https://api.slack.com/methods/channels.replies
|
209
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.replies.json
|
210
|
-
def channels_replies(options = {})
|
211
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
212
|
-
throw ArgumentError.new('Required arguments :thread_ts missing') if options[:thread_ts].nil?
|
213
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
214
|
-
post('channels.replies', options)
|
215
|
-
end
|
216
|
-
|
217
|
-
#
|
218
|
-
# Sets the purpose for a channel.
|
219
|
-
#
|
220
|
-
# @option options [channel] :channel
|
221
|
-
# Channel to set the purpose of.
|
222
|
-
# @option options [Object] :purpose
|
223
|
-
# The new purpose.
|
224
|
-
# @see https://api.slack.com/methods/channels.setPurpose
|
225
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.setPurpose.json
|
226
|
-
def channels_setPurpose(options = {})
|
227
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
228
|
-
throw ArgumentError.new('Required arguments :purpose missing') if options[:purpose].nil?
|
229
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
230
|
-
post('channels.setPurpose', options)
|
231
|
-
end
|
232
|
-
|
233
|
-
#
|
234
|
-
# Sets the topic for a channel.
|
235
|
-
#
|
236
|
-
# @option options [channel] :channel
|
237
|
-
# Channel to set the topic of.
|
238
|
-
# @option options [Object] :topic
|
239
|
-
# The new topic.
|
240
|
-
# @see https://api.slack.com/methods/channels.setTopic
|
241
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.setTopic.json
|
242
|
-
def channels_setTopic(options = {})
|
243
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
244
|
-
throw ArgumentError.new('Required arguments :topic missing') if options[:topic].nil?
|
245
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
246
|
-
post('channels.setTopic', options)
|
247
|
-
end
|
248
|
-
|
249
|
-
#
|
250
|
-
# Unarchives a channel.
|
251
|
-
#
|
252
|
-
# @option options [channel] :channel
|
253
|
-
# Channel to unarchive.
|
254
|
-
# @see https://api.slack.com/methods/channels.unarchive
|
255
|
-
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/channels/channels.unarchive.json
|
256
|
-
def channels_unarchive(options = {})
|
257
|
-
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
258
|
-
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
259
|
-
post('channels.unarchive', options)
|
260
|
-
end
|
261
|
-
end
|
262
|
-
end
|
263
|
-
end
|
264
|
-
end
|
265
|
-
end
|