class BtcPay::Client::Config

Constants

AUTH_TOKEN_TYPE
BASIC_TOKEN_TYPE

Attributes

auth_token[R]
authorization[R]
base_url[R]
basic_auth_token[R]
store_id[R]
user_agent[R]

Public Class Methods

new(**kwargs) click to toggle source
# File lib/btcpay/client/config.rb, line 11
def initialize(**kwargs)
  @base_url = load_url(kwargs[:base_url])
  @user_agent = kwargs[:user_agent] || "btcpay_ruby/#{BtcPay::VERSION}"
  @store_id = kwargs[:store_id]

  load_auth_token(kwargs)
  set_authorization
end

Public Instance Methods

to_h() click to toggle source
# File lib/btcpay/client/config.rb, line 20
def to_h
  {
    auth_token: auth_token,
    basic_auth_token: basic_auth_token,
    base_url: base_url,
    user_agent: user_agent,
    store_id: store_id
  }.compact
end

Private Instance Methods

load_auth_token(kwargs) click to toggle source
# File lib/btcpay/client/config.rb, line 40
def load_auth_token(kwargs)
  @auth_token = kwargs[:auth_token] || ENV['BTCPAY_AUTH_TOKEN']
  @basic_auth_token = kwargs[:basic_auth_token] || ENV['BTCPAY_BASIC_AUTH_TOKEN']

  raise ArgumentError.new('auth_token or basic_auth_token required') unless @auth_token || @basic_auth_token
end
load_url(url) click to toggle source
# File lib/btcpay/client/config.rb, line 32
def load_url(url)
  base_url = url || ENV['BTCPAY_BASE_URL'].to_s
  uri = URI(base_url)
  return uri.to_s if uri.scheme && uri.host

  raise ArgumentError.new('invalid base_url')
end
set_authorization() click to toggle source
# File lib/btcpay/client/config.rb, line 47
def set_authorization
  @authorization = if @auth_token
                     "#{AUTH_TOKEN_TYPE} #{@auth_token}"
                   elsif @basic_auth_token
                     "#{BASIC_TOKEN_TYPE} #{@basic_auth_token}"
                   end
end