Class: ApimaticApi::Client

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

Overview

apimatic_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, custom_url: 'https://localhost:44301/api', custom_header_authentication_credentials: nil, user_agent: 'TODO: Replace', config: nil) ⇒ Client

Returns a new instance of Client.



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/apimatic_api/client.rb', line 54

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,
  custom_url: 'https://localhost:44301/api',
  custom_header_authentication_credentials: nil,
  user_agent: 'TODO: Replace', 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, custom_url: custom_url,
                custom_header_authentication_credentials: custom_header_authentication_credentials,
                user_agent: user_agent
              )
            else
              config
            end

  @global_configuration = GlobalConfiguration.new(client_configuration: @config)
                                             .base_uri_executor(@config.method(:get_base_uri))
                                             .global_errors(BaseController::GLOBAL_ERRORS)
                                             .global_header('user-agent', @config.user_agent)

  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/apimatic_api/client.rb', line 10

def auth_managers
  @auth_managers
end

#configObject (readonly)

Returns the value of attribute config.



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

def config
  @config
end

Class Method Details

.from_env(**overrides) ⇒ Object

Creates a client directly from environment variables.



102
103
104
105
106
# File 'lib/apimatic_api/client.rb', line 102

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

#api_validation_external_apisApiValidationExternalApisController

Access to api_validation_external_apis controller.

Returns:



38
39
40
# File 'lib/apimatic_api/client.rb', line 38

def api_validation_external_apis
  @api_validation_external_apis ||= ApiValidationExternalApisController.new @global_configuration
end

#api_validation_v2_external_apisApiValidationV2ExternalApisController

Access to api_validation_v2_external_apis controller.

Returns:



44
45
46
# File 'lib/apimatic_api/client.rb', line 44

def api_validation_v2_external_apis
  @api_validation_v2_external_apis ||= ApiValidationV2ExternalApisController.new @global_configuration
end

#code_generation_external_apisCodeGenerationExternalApisController

Access to code_generation_external_apis controller.

Returns:



14
15
16
# File 'lib/apimatic_api/client.rb', line 14

def code_generation_external_apis
  @code_generation_external_apis ||= CodeGenerationExternalApisController.new @global_configuration
end

#docs_portal_generation_asyncDocsPortalGenerationAsyncController

Access to docs_portal_generation_async controller.

Returns:



32
33
34
# File 'lib/apimatic_api/client.rb', line 32

def docs_portal_generation_async
  @docs_portal_generation_async ||= DocsPortalGenerationAsyncController.new @global_configuration
end

#docs_portal_managementDocsPortalManagementController

Access to docs_portal_management controller.

Returns:



26
27
28
# File 'lib/apimatic_api/client.rb', line 26

def docs_portal_management
  @docs_portal_management ||= DocsPortalManagementController.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)



92
93
94
95
96
97
98
99
# File 'lib/apimatic_api/client.rb', line 92

def initialize_auth_managers(global_config)
  @auth_managers = {}
  http_client_config = global_config.client_configuration
  %w[Authorization].each { |auth| @auth_managers[auth] = nil }
  @auth_managers['Authorization'] = CustomHeaderAuthentication.new(
    http_client_config.custom_header_authentication_credentials
  )
end

#sdk_generation_asyncSdkGenerationAsyncController

Access to sdk_generation_async controller.

Returns:



50
51
52
# File 'lib/apimatic_api/client.rb', line 50

def sdk_generation_async
  @sdk_generation_async ||= SdkGenerationAsyncController.new @global_configuration
end

#transformationTransformationController

Access to transformation controller.

Returns:



20
21
22
# File 'lib/apimatic_api/client.rb', line 20

def transformation
  @transformation ||= TransformationController.new @global_configuration
end