Class: BancoBrasilPayments::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/bb_payments/configuration.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Configuration

Returns a new instance of Configuration.

Yields:

  • (_self)

Yield Parameters:



143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/bb_payments/configuration.rb', line 143

def initialize
  @scheme = 'https'
  @app_key_name = 'gw-app-key'
  @host = 'api-ip.bb.com.br'
  @oauth_host = 'oauth.bb.com.br'
  @base_path = 'pagamentos-lote/v1'
  @api_key = {}
  @api_key_prefix = {}
  @timeout = 0
  @client_side_validation = true
  @verify_ssl = true
  @verify_ssl_host = true
  @params_encoding = nil
  @cert_file = nil
  @key_file = nil
  @debugging = false
  @inject_format = false
  @force_ending_format = false
  @logger = defined?(Jets) ? Jets.logger : Logger.new(STDOUT)
  @access_token_scopes = 'payments.transfers-info payments.transfer-batch-request '\
                         'pagamentos-lote.lotes-requisicao pagamentos-lote.lotes-info '\
                         'pagamentos-lote.transferencias-info pagamentos-lote.transferencias-requisicao '\
                         'pagamentos-lote.pagamentos-info '\
                         'pagamentos-lote.transferencias-pix-info pagamentos-lote.transferencias-pix-requisicao '\
                         'pagamentos-lote.pix-info '\
                         'pagamentos-lote.cancelar-requisicao'

  yield(self) if block_given?
end

Instance Attribute Details

#access_tokenObject

Defines the access token (Bearer) used with OAuth2.



58
59
60
# File 'lib/bb_payments/configuration.rb', line 58

def access_token
  @access_token
end

#access_token_scopesObject

Returns the value of attribute access_token_scopes.



139
140
141
# File 'lib/bb_payments/configuration.rb', line 139

def access_token_scopes
  @access_token_scopes
end

#api_keyHash

Defines API keys used with API Key authentications.

Examples:

parameter name is “api_key”, API key is “xxx” (e.g. “api_key=xxx” in query string)

config.api_key['api_key'] = 'xxx'

Returns:

  • (Hash)

    key: parameter name, value: parameter value (API key)



32
33
34
# File 'lib/bb_payments/configuration.rb', line 32

def api_key
  @api_key
end

#api_key_prefixHash

Defines API key prefixes used with API Key authentications.

Examples:

parameter name is “Authorization”, API key prefix is “Token” (e.g. “Authorization: Token xxx” in headers)

config.api_key_prefix['api_key'] = 'Token'

Returns:

  • (Hash)

    key: parameter name, value: API key prefix



40
41
42
# File 'lib/bb_payments/configuration.rb', line 40

def api_key_prefix
  @api_key_prefix
end

#app_key_nameObject

Returns the value of attribute app_key_name.



141
142
143
# File 'lib/bb_payments/configuration.rb', line 141

def app_key_name
  @app_key_name
end

#base_pathObject

Defines url base path



24
25
26
# File 'lib/bb_payments/configuration.rb', line 24

def base_path
  @base_path
end

#cert_fileObject

TLS/SSL setting Client certificate file (for client certificate)



118
119
120
# File 'lib/bb_payments/configuration.rb', line 118

def cert_file
  @cert_file
end

#client_side_validationtrue, false

Set this to false to skip client side validation in the operation. Default to true.

Returns:

  • (true, false)


87
88
89
# File 'lib/bb_payments/configuration.rb', line 87

def client_side_validation
  @client_side_validation
end

#debuggingtrue, false

Set this to enable/disable debugging. When enabled (set to true), HTTP request/response details will be logged with ‘logger.debug` (see the `logger` attribute). Default to false.

Returns:

  • (true, false)


65
66
67
# File 'lib/bb_payments/configuration.rb', line 65

def debugging
  @debugging
end

#force_ending_formatObject

Returns the value of attribute force_ending_format.



137
138
139
# File 'lib/bb_payments/configuration.rb', line 137

def force_ending_format
  @force_ending_format
end

#gw_app_keyObject

Chave de acesso do aplicativo do desenvolvedor. Esta chave é única e obtida no Portal “BB for Developers” Usada para identificar as requisições da aplicação do desenvolvedor.



45
46
47
# File 'lib/bb_payments/configuration.rb', line 45

def gw_app_key
  @gw_app_key
end

#hostObject

Defines url host



18
19
20
# File 'lib/bb_payments/configuration.rb', line 18

def host
  @host
end

#inject_formatObject

Returns the value of attribute inject_format.



135
136
137
# File 'lib/bb_payments/configuration.rb', line 135

def inject_format
  @inject_format
end

#key_fileObject

TLS/SSL setting Client private key file (for client certificate)



122
123
124
# File 'lib/bb_payments/configuration.rb', line 122

def key_file
  @key_file
end

#logger#debug

Defines the logger used for debugging. Default to ‘Rails.logger` (when in Rails) or logging to STDOUT.

Returns:

  • (#debug)


71
72
73
# File 'lib/bb_payments/configuration.rb', line 71

def logger
  @logger
end

#oauth_hostObject

Defines url for oauth



21
22
23
# File 'lib/bb_payments/configuration.rb', line 21

def oauth_host
  @oauth_host
end

#params_encodingObject

Set this to customize parameters encoding of array parameter with multi collectionFormat. Default to nil.

github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96

See Also:

  • params_encoding option of Ethon. Related source code:


133
134
135
# File 'lib/bb_payments/configuration.rb', line 133

def params_encoding
  @params_encoding
end

#passwordString

Defines the password used with HTTP basic authentication.

Returns:

  • (String)


55
56
57
# File 'lib/bb_payments/configuration.rb', line 55

def password
  @password
end

#schemeObject

Defines url scheme



15
16
17
# File 'lib/bb_payments/configuration.rb', line 15

def scheme
  @scheme
end

#ssl_ca_certString

TLS/SSL setting Set this to customize the certificate file to verify the peer.

github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145

Returns:

  • (String)

    the path to the certificate file

See Also:

  • `cainfo` option of Typhoeus, `--cert` option of libcurl. Related source code:


114
115
116
# File 'lib/bb_payments/configuration.rb', line 114

def ssl_ca_cert
  @ssl_ca_cert
end

#ssl_key_passwdObject

TLS/SSL setting Client private key passphrase (for client certificate)



126
127
128
# File 'lib/bb_payments/configuration.rb', line 126

def ssl_key_passwd
  @ssl_key_passwd
end

#temp_folder_pathString

Defines the temporary folder to store downloaded files (for API endpoints that have file response). Default to use ‘Tempfile`.

Returns:

  • (String)


78
79
80
# File 'lib/bb_payments/configuration.rb', line 78

def temp_folder_path
  @temp_folder_path
end

#timeoutObject

The time limit for HTTP request in seconds. Default to 0 (never times out).



82
83
84
# File 'lib/bb_payments/configuration.rb', line 82

def timeout
  @timeout
end

#usernameString

Defines the username used with HTTP basic authentication.

Returns:

  • (String)


50
51
52
# File 'lib/bb_payments/configuration.rb', line 50

def username
  @username
end

#verify_ssltrue, false

Note:

Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.

TLS/SSL setting Set this to false to skip verifying SSL certificate when calling API from https server. Default to true.

Returns:

  • (true, false)


96
97
98
# File 'lib/bb_payments/configuration.rb', line 96

def verify_ssl
  @verify_ssl
end

#verify_ssl_hosttrue, false

Note:

Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.

TLS/SSL setting Set this to false to skip verifying SSL host name Default to true.

Returns:

  • (true, false)


105
106
107
# File 'lib/bb_payments/configuration.rb', line 105

def verify_ssl_host
  @verify_ssl_host
end

Class Method Details

.defaultObject

The default Configuration object.



193
194
195
# File 'lib/bb_payments/configuration.rb', line 193

def self.default
  @@default ||= Configuration.new
end

Instance Method Details

#api_key_with_prefix(param_name) ⇒ Object

Gets API key (with prefix if set).

Parameters:

  • param_name (String)

    the parameter name of API key auth



223
224
225
226
227
228
229
# File 'lib/bb_payments/configuration.rb', line 223

def api_key_with_prefix(param_name)
  if @api_key_prefix[param_name]
    "#{@api_key_prefix[param_name]} #{@api_key[param_name]}"
  else
    @api_key[param_name]
  end
end

#auth_settingsObject

Returns Auth Settings hash for api client.



237
238
239
240
241
242
243
244
245
246
247
# File 'lib/bb_payments/configuration.rb', line 237

def auth_settings
  {
    'OAuth2-CC' =>
      {
        type: 'oauth2',
        in: 'header',
        key: 'Authorization',
        value: "Bearer #{access_token}"
      },
  }
end

#base_url(base_path) ⇒ Object



217
218
219
# File 'lib/bb_payments/configuration.rb', line 217

def base_url(base_path)
  "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
end

#basic_auth_tokenObject

Gets Basic Auth token string



232
233
234
# File 'lib/bb_payments/configuration.rb', line 232

def basic_auth_token
  'Basic ' + Base64.encode64("#{username}:#{password}").delete("\r\n")
end

#client_credentials_apiObject



173
174
175
# File 'lib/bb_payments/configuration.rb', line 173

def client_credentials_api
  @client_credentials_api ||= BancoBrasilClientCredentials::ApiClient.new oauth_config
end

#configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



197
198
199
# File 'lib/bb_payments/configuration.rb', line 197

def configure
  yield(self) if block_given?
end

#oauth_configObject



177
178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/bb_payments/configuration.rb', line 177

def oauth_config
  oauth_config = BancoBrasilClientCredentials::Configuration.new
  oauth_config.host = oauth_host
  oauth_config.base_path = ''
  oauth_config.logger = logger
  oauth_config.debugging = debugging
  oauth_config.verify_ssl = verify_ssl
  oauth_config.verify_ssl_host = verify_ssl_host
  oauth_config.access_token = access_token
  oauth_config.username = username
  oauth_config.password = password
  oauth_config.ssl_ca_cert = ssl_ca_cert
  oauth_config
end