Class: SlackWebApi::Client

Inherits:
Object
  • Object
show all
Includes:
CoreLibrary
Defined in:
lib/slack_web_api/client.rb

Overview

slack_web_api client class.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection: nil, adapter: :net_http_persistent, timeout: 30, max_retries: 0, retry_interval: 1, backoff_factor: 2, retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524], retry_methods: %i[get put],, http_callback: nil, proxy_settings: nil, logging_configuration: nil, environment: Environment::PRODUCTION, authorization_code_auth_credentials: nil, config: nil) ⇒ Client

Returns a new instance of Client.



357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
# File 'lib/slack_web_api/client.rb', line 357

def initialize(
  connection: nil, adapter: :net_http_persistent, timeout: 30,
  max_retries: 0, retry_interval: 1, backoff_factor: 2,
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
  retry_methods: i[get put], http_callback: nil, proxy_settings: nil,
  logging_configuration: nil, environment: Environment::PRODUCTION,
  authorization_code_auth_credentials: nil, config: nil
)
  @config = if config.nil?
              Configuration.new(
                connection: connection, adapter: adapter, timeout: timeout,
                max_retries: max_retries, retry_interval: retry_interval,
                backoff_factor: backoff_factor,
                retry_statuses: retry_statuses,
                retry_methods: retry_methods, http_callback: http_callback,
                proxy_settings: proxy_settings,
                logging_configuration: logging_configuration,
                environment: environment,
                authorization_code_auth_credentials: authorization_code_auth_credentials
              )
            else
              config
            end
  user_agent_params = BaseController.user_agent_parameters

  @global_configuration = GlobalConfiguration.new(client_configuration: @config)
                                             .base_uri_executor(@config.method(:get_base_uri))
                                             .global_errors(BaseController::GLOBAL_ERRORS)
                                             .user_agent(BaseController.user_agent,
                                                         agent_parameters: user_agent_params)

  initialize_auth_managers(@global_configuration)
  @global_configuration = @global_configuration.auth_managers(@auth_managers)
end

Instance Attribute Details

#auth_managersObject (readonly)

Returns the value of attribute auth_managers.



10
11
12
# File 'lib/slack_web_api/client.rb', line 10

def auth_managers
  @auth_managers
end

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/slack_web_api/client.rb', line 10

def config
  @config
end

Class Method Details

.from_env(**overrides) ⇒ Object

Creates a client directly from environment variables.



404
405
406
407
408
# File 'lib/slack_web_api/client.rb', line 404

def self.from_env(**overrides)
  default_config = Configuration.build_default_config_from_env
  new_config = default_config.clone_with(**overrides)
  new(config: new_config)
end

Instance Method Details

#admin_appsAdminAppsController

Access to admin_apps controller.

Returns:



23
24
25
# File 'lib/slack_web_api/client.rb', line 23

def admin_apps
  @admin_apps ||= AdminAppsController.new @global_configuration
end

#admin_apps_approvedAdminAppsApprovedController

Access to admin_apps_approved controller.

Returns:



29
30
31
# File 'lib/slack_web_api/client.rb', line 29

def admin_apps_approved
  @admin_apps_approved ||= AdminAppsApprovedController.new @global_configuration
end

#admin_apps_requestsAdminAppsRequestsController

Access to admin_apps_requests controller.

Returns:



35
36
37
# File 'lib/slack_web_api/client.rb', line 35

def admin_apps_requests
  @admin_apps_requests ||= AdminAppsRequestsController.new @global_configuration
end

#admin_apps_restrictedAdminAppsRestrictedController

Access to admin_apps_restricted controller.

Returns:



41
42
43
# File 'lib/slack_web_api/client.rb', line 41

def admin_apps_restricted
  @admin_apps_restricted ||= AdminAppsRestrictedController.new @global_configuration
end

#admin_conversationsAdminConversationsController

Access to admin_conversations controller.

Returns:



47
48
49
# File 'lib/slack_web_api/client.rb', line 47

def admin_conversations
  @admin_conversations ||= AdminConversationsController.new @global_configuration
end

#admin_conversations_ekmAdminConversationsEkmController

Access to admin_conversations_ekm controller.

Returns:



53
54
55
# File 'lib/slack_web_api/client.rb', line 53

def admin_conversations_ekm
  @admin_conversations_ekm ||= AdminConversationsEkmController.new @global_configuration
end

#admin_conversations_restrict_accessAdminConversationsRestrictAccessController

Access to admin_conversations_restrict_access controller.

Returns:



59
60
61
# File 'lib/slack_web_api/client.rb', line 59

def admin_conversations_restrict_access
  @admin_conversations_restrict_access ||= AdminConversationsRestrictAccessController.new @global_configuration
end

#admin_emojiAdminEmojiController

Access to admin_emoji controller.

Returns:



65
66
67
# File 'lib/slack_web_api/client.rb', line 65

def admin_emoji
  @admin_emoji ||= AdminEmojiController.new @global_configuration
end

#admin_invite_requestsAdminInviteRequestsController

Access to admin_invite_requests controller.

Returns:



71
72
73
# File 'lib/slack_web_api/client.rb', line 71

def admin_invite_requests
  @admin_invite_requests ||= AdminInviteRequestsController.new @global_configuration
end

#admin_invite_requests_approvedAdminInviteRequestsApprovedController

Access to admin_invite_requests_approved controller.

Returns:



77
78
79
# File 'lib/slack_web_api/client.rb', line 77

def admin_invite_requests_approved
  @admin_invite_requests_approved ||= AdminInviteRequestsApprovedController.new @global_configuration
end

#admin_invite_requests_deniedAdminInviteRequestsDeniedController

Access to admin_invite_requests_denied controller.

Returns:



83
84
85
# File 'lib/slack_web_api/client.rb', line 83

def admin_invite_requests_denied
  @admin_invite_requests_denied ||= AdminInviteRequestsDeniedController.new @global_configuration
end

#admin_teamsAdminTeamsController

Access to admin_teams controller.

Returns:



95
96
97
# File 'lib/slack_web_api/client.rb', line 95

def admin_teams
  @admin_teams ||= AdminTeamsController.new @global_configuration
end

#admin_teams_adminsAdminTeamsAdminsController

Access to admin_teams_admins controller.

Returns:



89
90
91
# File 'lib/slack_web_api/client.rb', line 89

def admin_teams_admins
  @admin_teams_admins ||= AdminTeamsAdminsController.new @global_configuration
end

#admin_teams_ownersAdminTeamsOwnersController

Access to admin_teams_owners controller.

Returns:



101
102
103
# File 'lib/slack_web_api/client.rb', line 101

def admin_teams_owners
  @admin_teams_owners ||= AdminTeamsOwnersController.new @global_configuration
end

#admin_teams_settingsAdminTeamsSettingsController

Access to admin_teams_settings controller.

Returns:



107
108
109
# File 'lib/slack_web_api/client.rb', line 107

def admin_teams_settings
  @admin_teams_settings ||= AdminTeamsSettingsController.new @global_configuration
end

#admin_usergroupsAdminUsergroupsController

Access to admin_usergroups controller.

Returns:



113
114
115
# File 'lib/slack_web_api/client.rb', line 113

def admin_usergroups
  @admin_usergroups ||= AdminUsergroupsController.new @global_configuration
end

#admin_usersAdminUsersController

Access to admin_users controller.

Returns:



119
120
121
# File 'lib/slack_web_api/client.rb', line 119

def admin_users
  @admin_users ||= AdminUsersController.new @global_configuration
end

#admin_users_sessionAdminUsersSessionController

Access to admin_users_session controller.

Returns:



125
126
127
# File 'lib/slack_web_api/client.rb', line 125

def admin_users_session
  @admin_users_session ||= AdminUsersSessionController.new @global_configuration
end

#apiApiController

Access to api controller.

Returns:



131
132
133
# File 'lib/slack_web_api/client.rb', line 131

def api
  @api ||= ApiController.new @global_configuration
end

#appsAppsController

Access to apps controller.

Returns:



167
168
169
# File 'lib/slack_web_api/client.rb', line 167

def apps
  @apps ||= AppsController.new @global_configuration
end

#apps_event_authorizationsAppsEventAuthorizationsController

Access to apps_event_authorizations controller.

Returns:



137
138
139
# File 'lib/slack_web_api/client.rb', line 137

def apps_event_authorizations
  @apps_event_authorizations ||= AppsEventAuthorizationsController.new @global_configuration
end

#apps_permissionsAppsPermissionsController

Access to apps_permissions controller.

Returns:



143
144
145
# File 'lib/slack_web_api/client.rb', line 143

def apps_permissions
  @apps_permissions ||= AppsPermissionsController.new @global_configuration
end

#apps_permissions_resourcesAppsPermissionsResourcesController

Access to apps_permissions_resources controller.

Returns:



149
150
151
# File 'lib/slack_web_api/client.rb', line 149

def apps_permissions_resources
  @apps_permissions_resources ||= AppsPermissionsResourcesController.new @global_configuration
end

#apps_permissions_scopesAppsPermissionsScopesController

Access to apps_permissions_scopes controller.

Returns:



155
156
157
# File 'lib/slack_web_api/client.rb', line 155

def apps_permissions_scopes
  @apps_permissions_scopes ||= AppsPermissionsScopesController.new @global_configuration
end

#apps_permissions_usersAppsPermissionsUsersController

Access to apps_permissions_users controller.

Returns:



161
162
163
# File 'lib/slack_web_api/client.rb', line 161

def apps_permissions_users
  @apps_permissions_users ||= AppsPermissionsUsersController.new @global_configuration
end

#authAuthController

Access to auth controller.

Returns:



173
174
175
# File 'lib/slack_web_api/client.rb', line 173

def auth
  @auth ||= AuthController.new @global_configuration
end

#botsBotsController

Access to bots controller.

Returns:



179
180
181
# File 'lib/slack_web_api/client.rb', line 179

def bots
  @bots ||= BotsController.new @global_configuration
end

#callsCallsController

Access to calls controller.

Returns:



185
186
187
# File 'lib/slack_web_api/client.rb', line 185

def calls
  @calls ||= CallsController.new @global_configuration
end

#calls_participantsCallsParticipantsController

Access to calls_participants controller.

Returns:



191
192
193
# File 'lib/slack_web_api/client.rb', line 191

def calls_participants
  @calls_participants ||= CallsParticipantsController.new @global_configuration
end

#chatChatController

Access to chat controller.

Returns:



197
198
199
# File 'lib/slack_web_api/client.rb', line 197

def chat
  @chat ||= ChatController.new @global_configuration
end

#chat_scheduled_messagesChatScheduledMessagesController

Access to chat_scheduled_messages controller.

Returns:



203
204
205
# File 'lib/slack_web_api/client.rb', line 203

def chat_scheduled_messages
  @chat_scheduled_messages ||= ChatScheduledMessagesController.new @global_configuration
end

#conversationsConversationsController

Access to conversations controller.

Returns:



209
210
211
# File 'lib/slack_web_api/client.rb', line 209

def conversations
  @conversations ||= ConversationsController.new @global_configuration
end

#dialogDialogController

Access to dialog controller.

Returns:



215
216
217
# File 'lib/slack_web_api/client.rb', line 215

def dialog
  @dialog ||= DialogController.new @global_configuration
end

#dndDndController

Access to dnd controller.

Returns:



221
222
223
# File 'lib/slack_web_api/client.rb', line 221

def dnd
  @dnd ||= DndController.new @global_configuration
end

#emojiEmojiController

Access to emoji controller.

Returns:



227
228
229
# File 'lib/slack_web_api/client.rb', line 227

def emoji
  @emoji ||= EmojiController.new @global_configuration
end

#filesFilesController

Access to files controller.

Returns:



239
240
241
# File 'lib/slack_web_api/client.rb', line 239

def files
  @files ||= FilesController.new @global_configuration
end

#files_commentsFilesCommentsController

Access to files_comments controller.

Returns:



233
234
235
# File 'lib/slack_web_api/client.rb', line 233

def files_comments
  @files_comments ||= FilesCommentsController.new @global_configuration
end

#files_remoteFilesRemoteController

Access to files_remote controller.

Returns:



245
246
247
# File 'lib/slack_web_api/client.rb', line 245

def files_remote
  @files_remote ||= FilesRemoteController.new @global_configuration
end

#initialize_auth_managers(global_config) ⇒ Object

Initializes the auth managers hash used for authenticating API calls.

Parameters:

  • global_config (GlobalConfiguration)

    The global configuration of the SDK)



394
395
396
397
398
399
400
401
# File 'lib/slack_web_api/client.rb', line 394

def initialize_auth_managers(global_config)
  @auth_managers = {}
  http_client_config = global_config.client_configuration
  %w[slackAuth].each { |auth| @auth_managers[auth] = nil }
  @auth_managers['slackAuth'] = Oauth2.new(
    http_client_config.authorization_code_auth_credentials, global_config
  )
end

#migrationMigrationController

Access to migration controller.

Returns:



251
252
253
# File 'lib/slack_web_api/client.rb', line 251

def migration
  @migration ||= MigrationController.new @global_configuration
end

#oauthOauthController

Access to oauth controller.

Returns:



257
258
259
# File 'lib/slack_web_api/client.rb', line 257

def oauth
  @oauth ||= OauthController.new @global_configuration
end

#oauth_authorizationOauthAuthorizationController

Access to oauth_authorization controller.

Returns:



353
354
355
# File 'lib/slack_web_api/client.rb', line 353

def oauth_authorization
  @oauth_authorization ||= OauthAuthorizationController.new @global_configuration
end

#oauth_v2OauthV2Controller

Access to oauth_v2 controller.

Returns:



263
264
265
# File 'lib/slack_web_api/client.rb', line 263

def oauth_v2
  @oauth_v2 ||= OauthV2Controller.new @global_configuration
end

#pinsPinsController

Access to pins controller.

Returns:



269
270
271
# File 'lib/slack_web_api/client.rb', line 269

def pins
  @pins ||= PinsController.new @global_configuration
end

#reactionsReactionsController

Access to reactions controller.

Returns:



275
276
277
# File 'lib/slack_web_api/client.rb', line 275

def reactions
  @reactions ||= ReactionsController.new @global_configuration
end

#remindersRemindersController

Access to reminders controller.

Returns:



281
282
283
# File 'lib/slack_web_api/client.rb', line 281

def reminders
  @reminders ||= RemindersController.new @global_configuration
end

#rtmRtmController

Access to rtm controller.

Returns:



287
288
289
# File 'lib/slack_web_api/client.rb', line 287

def rtm
  @rtm ||= RtmController.new @global_configuration
end

#searchSearchController

Access to search controller.

Returns:



293
294
295
# File 'lib/slack_web_api/client.rb', line 293

def search
  @search ||= SearchController.new @global_configuration
end

#slack_authObject

Returns the configured authentication slackAuth instance.



17
18
19
# File 'lib/slack_web_api/client.rb', line 17

def slack_auth
  @auth_managers['slackAuth']
end

#starsStarsController

Access to stars controller.

Returns:



299
300
301
# File 'lib/slack_web_api/client.rb', line 299

def stars
  @stars ||= StarsController.new @global_configuration
end

#teamTeamController

Access to team controller.

Returns:



305
306
307
# File 'lib/slack_web_api/client.rb', line 305

def team
  @team ||= TeamController.new @global_configuration
end

#team_profileTeamProfileController

Access to team_profile controller.

Returns:



311
312
313
# File 'lib/slack_web_api/client.rb', line 311

def team_profile
  @team_profile ||= TeamProfileController.new @global_configuration
end

#user_agent_detailObject



12
13
14
# File 'lib/slack_web_api/client.rb', line 12

def user_agent_detail
  config.user_agent_detail
end

#usergroupsUsergroupsController

Access to usergroups controller.

Returns:



317
318
319
# File 'lib/slack_web_api/client.rb', line 317

def usergroups
  @usergroups ||= UsergroupsController.new @global_configuration
end

#usergroups_usersUsergroupsUsersController

Access to usergroups_users controller.

Returns:



323
324
325
# File 'lib/slack_web_api/client.rb', line 323

def usergroups_users
  @usergroups_users ||= UsergroupsUsersController.new @global_configuration
end

#usersUsersController

Access to users controller.

Returns:



329
330
331
# File 'lib/slack_web_api/client.rb', line 329

def users
  @users ||= UsersController.new @global_configuration
end

#users_profileUsersProfileController

Access to users_profile controller.

Returns:



335
336
337
# File 'lib/slack_web_api/client.rb', line 335

def users_profile
  @users_profile ||= UsersProfileController.new @global_configuration
end

#viewsViewsController

Access to views controller.

Returns:



341
342
343
# File 'lib/slack_web_api/client.rb', line 341

def views
  @views ||= ViewsController.new @global_configuration
end

#workflowsWorkflowsController

Access to workflows controller.

Returns:



347
348
349
# File 'lib/slack_web_api/client.rb', line 347

def workflows
  @workflows ||= WorkflowsController.new @global_configuration
end