Module: CDEKApiClient::Config

Defined in:
lib/cdek_api_client/config.rb

Overview

Configuration module for CDEK API Client

Constant Summary collapse

PRODUCTION =

Available API environments

'production'
DEMO =
'demo'
ENDPOINTS =

API endpoints for different environments

{
  PRODUCTION => 'https://api.cdek.ru/v2',
  DEMO => 'https://api.edu.cdek.ru/v2'
}.freeze

Class Method Summary collapse

Class Method Details

.base_url(environment: nil, custom_url: nil) ⇒ String

Get the base URL for the current configuration

Parameters:

  • environment (String, Symbol) (defaults to: nil)

    The environment (:production, :demo, ‘production’, ‘demo’)

  • custom_url (String) (defaults to: nil)

    Custom API URL (overrides environment)

Returns:

  • (String)

    The base API URL



21
22
23
24
25
26
27
28
# File 'lib/cdek_api_client/config.rb', line 21

def base_url(environment: nil, custom_url: nil)
  return custom_url if custom_url

  env = environment&.to_s&.downcase || ENV.fetch('CDEK_API_ENV', DEMO)
  ENDPOINTS.fetch(env) do
    raise ArgumentError, "Unknown environment: #{env}. Use :production or :demo"
  end
end

.token_url(environment: nil, custom_url: nil) ⇒ String

Get the token URL for authentication

Parameters:

  • environment (String, Symbol) (defaults to: nil)

    The environment

  • custom_url (String) (defaults to: nil)

    Custom API URL

Returns:

  • (String)

    The OAuth token URL



34
35
36
# File 'lib/cdek_api_client/config.rb', line 34

def token_url(environment: nil, custom_url: nil)
  "#{base_url(environment: environment, custom_url: custom_url)}/oauth/token"
end