Class: Yookassa::Configuration

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

Overview

Holds API credentials and connection settings for the YooKassa API.

Examples:

Using shop_id + api_key

Yookassa.configure do |config|
  config.shop_id = "123456"
  config.api_key = "live_..."
end

Using OAuth token

Yookassa.configure do |config|
  config.auth_token = "oauth_token_..."
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



38
39
40
41
42
43
# File 'lib/yookassa/configuration.rb', line 38

def initialize
  @timeout = 30
  @max_retries = 3
  @retry_delay = 1.8
  @logger = nil
end

Instance Attribute Details

#api_keyString?

Returns secret API key for Basic auth.

Returns:

  • secret API key for Basic auth



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

def api_key
  @api_key
end

#auth_tokenString?

Returns OAuth token (used instead of shop_id/api_key when set).

Returns:

  • OAuth token (used instead of shop_id/api_key when set)



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

def auth_token
  @auth_token
end

#loggerLogger?

Returns optional logger for request/response debugging.

Returns:

  • optional logger for request/response debugging



36
37
38
# File 'lib/yookassa/configuration.rb', line 36

def logger
  @logger
end

#max_retriesInteger

Returns maximum number of retries on failure (default: 3).

Returns:

  • maximum number of retries on failure (default: 3)



30
31
32
# File 'lib/yookassa/configuration.rb', line 30

def max_retries
  @max_retries
end

#retry_delayFloat

Returns base delay between retries in seconds (default: 1.8).

Returns:

  • base delay between retries in seconds (default: 1.8)



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

def retry_delay
  @retry_delay
end

#shop_idString?

Returns YooKassa shop (merchant) identifier.

Returns:

  • YooKassa shop (merchant) identifier



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

def shop_id
  @shop_id
end

#timeoutInteger

Returns HTTP request timeout in seconds (default: 30).

Returns:

  • HTTP request timeout in seconds (default: 30)



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

def timeout
  @timeout
end

Instance Method Details

#credentialsHash

Returns the active credential set for HTTP authentication.

Returns:

  • either { auth_token: ... } or { shop_id: ..., api_key: ... }



69
70
71
72
73
74
75
# File 'lib/yookassa/configuration.rb', line 69

def credentials
  if auth_token && !auth_token.to_s.empty?
    { auth_token: auth_token }
  else
    { shop_id: shop_id, api_key: api_key }
  end
end

#validateBoolean

Checks whether credentials are present (non-raising).

Returns:

  • true if auth_token is set, or both shop_id and api_key are set



48
49
50
51
52
53
54
# File 'lib/yookassa/configuration.rb', line 48

def validate
  return true unless auth_token.to_s.empty?
  return false if shop_id.to_s.empty?
  return false if api_key.to_s.empty?

  true
end

#validate!void

This method returns an undefined value.

Validates that credentials are present, raising on failure.

Raises:

  • if required credentials are missing



60
61
62
63
64
# File 'lib/yookassa/configuration.rb', line 60

def validate!
  return unless auth_token.to_s.empty?
  raise Yookassa::Error, "shop_id is required (or provide auth_token)" if shop_id.to_s.empty?
  raise Yookassa::Error, "api_key is required (or provide auth_token)" if api_key.to_s.empty?
end