Class: MultiAuthSample::Configuration

Inherits:
CoreLibrary::HttpClientConfiguration
  • Object
show all
Defined in:
lib/multi_auth_sample/configuration.rb

Overview

All configuration including auth info and base URI for the API access are configured in this class.

Constant Summary collapse

ENVIRONMENTS =

All the environments the SDK can run in.

{
  Environment::PRODUCTION => {
    Server::DEFAULT => 'http://apimatic.hopto.org:{suites}',
    Server::AUTH => 'http://apimaticauth.hopto.org:3000'
  },
  Environment::TESTING => {
    Server::DEFAULT => 'http://localhost:3000',
    Server::AUTH => 'http://localhost:3000/oauth2/auth-server'
  }
}.freeze

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection: nil, adapter: :net_http_persistent, timeout: 60, 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, environment: Environment::TESTING, port: '80', suites: SuiteCodeEnum::HEARTS, basic_auth_credentials: nil, api_key_credentials: nil, api_header_credentials: nil, o_auth_ccg_credentials: nil, o_auth_acg_credentials: nil, o_auth_ropcg_credentials: nil, o_auth_bearer_token_credentials: nil, custom_auth_credentials: nil, access_token: '') ⇒ Configuration

Returns a new instance of Configuration.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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
89
90
91
92
# File 'lib/multi_auth_sample/configuration.rb', line 36

def initialize(
  connection: nil, adapter: :net_http_persistent, timeout: 60,
  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,
  environment: Environment::TESTING, port: '80',
  suites: SuiteCodeEnum::HEARTS, basic_auth_credentials: nil,
  api_key_credentials: nil, api_header_credentials: nil,
  o_auth_ccg_credentials: nil, o_auth_acg_credentials: nil,
  o_auth_ropcg_credentials: nil, o_auth_bearer_token_credentials: nil,
  custom_auth_credentials: nil, access_token: ''
)

  super 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

  # Current API environment
  @environment = String(environment)

  # port value
  @port = port

  # suites value
  @suites = suites

  # The object holding Basic Authentication credentials
  @basic_auth_credentials = basic_auth_credentials

  # The object holding Custom Query Parameter credentials
  @api_key_credentials = api_key_credentials

  # The object holding Custom Header Signature credentials
  @api_header_credentials = api_header_credentials

  # The object holding OAuth 2 Client Credentials Grant credentials
  @o_auth_ccg_credentials = o_auth_ccg_credentials

  # The object holding OAuth 2 Authorization Code Grant credentials
  @o_auth_acg_credentials = o_auth_acg_credentials

  # The object holding OAuth 2 Resource Owner Credentials Grant credentials
  @o_auth_ropcg_credentials = o_auth_ropcg_credentials

  # The object holding OAuth 2 Bearer token credentials
  @o_auth_bearer_token_credentials = o_auth_bearer_token_credentials

  # The object holding Custom Authentication credentials
  @custom_auth_credentials = custom_auth_credentials

  # TODO: Replace
  @access_token = access_token

  # The Http Client to use for making requests.
  set_http_client CoreLibrary::FaradayClient.new(self)
end

Class Attribute Details

.environmentsObject (readonly)

Returns the value of attribute environments.



33
34
35
# File 'lib/multi_auth_sample/configuration.rb', line 33

def environments
  @environments
end

Instance Attribute Details

#access_tokenObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def access_token
  @access_token
end

#api_header_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def api_header_credentials
  @api_header_credentials
end

#api_key_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def api_key_credentials
  @api_key_credentials
end

#basic_auth_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def basic_auth_credentials
  @basic_auth_credentials
end

#custom_auth_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def custom_auth_credentials
  @custom_auth_credentials
end

#environmentObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def environment
  @environment
end

#o_auth_acg_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def o_auth_acg_credentials
  @o_auth_acg_credentials
end

#o_auth_bearer_token_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def o_auth_bearer_token_credentials
  @o_auth_bearer_token_credentials
end

#o_auth_ccg_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def o_auth_ccg_credentials
  @o_auth_ccg_credentials
end

#o_auth_ropcg_credentialsObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def o_auth_ropcg_credentials
  @o_auth_ropcg_credentials
end

#portObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def port
  @port
end

#suitesObject (readonly)

The attribute readers for properties.



27
28
29
# File 'lib/multi_auth_sample/configuration.rb', line 27

def suites
  @suites
end

Instance Method Details

#clone_with(connection: nil, adapter: nil, timeout: nil, max_retries: nil, retry_interval: nil, backoff_factor: nil, retry_statuses: nil, retry_methods: nil, http_callback: nil, environment: nil, port: nil, suites: nil, basic_auth_credentials: nil, api_key_credentials: nil, api_header_credentials: nil, o_auth_ccg_credentials: nil, o_auth_acg_credentials: nil, o_auth_ropcg_credentials: nil, o_auth_bearer_token_credentials: nil, custom_auth_credentials: nil, access_token: nil) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/multi_auth_sample/configuration.rb', line 94

def clone_with(connection: nil, adapter: nil, timeout: nil,
               max_retries: nil, retry_interval: nil, backoff_factor: nil,
               retry_statuses: nil, retry_methods: nil, http_callback: nil,
               environment: nil, port: nil, suites: nil,
               basic_auth_credentials: nil, api_key_credentials: nil,
               api_header_credentials: nil, o_auth_ccg_credentials: nil,
               o_auth_acg_credentials: nil, o_auth_ropcg_credentials: nil,
               o_auth_bearer_token_credentials: nil,
               custom_auth_credentials: nil, access_token: nil)
  connection ||= self.connection
  adapter ||= self.adapter
  timeout ||= self.timeout
  max_retries ||= self.max_retries
  retry_interval ||= self.retry_interval
  backoff_factor ||= self.backoff_factor
  retry_statuses ||= self.retry_statuses
  retry_methods ||= self.retry_methods
  http_callback ||= self.http_callback
  environment ||= self.environment
  port ||= self.port
  suites ||= self.suites
  basic_auth_credentials ||= self.basic_auth_credentials
  api_key_credentials ||= self.api_key_credentials
  api_header_credentials ||= self.api_header_credentials
  o_auth_ccg_credentials ||= self.o_auth_ccg_credentials
  o_auth_acg_credentials ||= self.o_auth_acg_credentials
  o_auth_ropcg_credentials ||= self.o_auth_ropcg_credentials
  o_auth_bearer_token_credentials ||= self.o_auth_bearer_token_credentials
  custom_auth_credentials ||= self.custom_auth_credentials
  access_token ||= self.access_token

  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,
    environment: environment, port: port, suites: suites,
    basic_auth_credentials: basic_auth_credentials,
    api_key_credentials: api_key_credentials,
    api_header_credentials: api_header_credentials,
    o_auth_ccg_credentials: o_auth_ccg_credentials,
    o_auth_acg_credentials: o_auth_acg_credentials,
    o_auth_ropcg_credentials: o_auth_ropcg_credentials,
    o_auth_bearer_token_credentials: o_auth_bearer_token_credentials,
    custom_auth_credentials: custom_auth_credentials,
    access_token: access_token
  )
end

#get_base_uri(server = Server::DEFAULT) ⇒ String

Generates the appropriate base URI for the environment and the server. required.

Parameters:

  • server (Configuration::Server) (defaults to: Server::DEFAULT)

    The server enum for which the base URI is

Returns:

  • (String)

    The base URI.



160
161
162
163
164
165
166
167
168
# File 'lib/multi_auth_sample/configuration.rb', line 160

def get_base_uri(server = Server::DEFAULT)
  parameters = {
    'port' => { 'value' => port, 'encode' => false },
    'suites' => { 'value' => suites, 'encode' => false }
  }
  APIHelper.append_url_with_template_parameters(
    ENVIRONMENTS[environment][server], parameters
  )
end