class StarkBank::Utils::Checks

Public Class Methods

check_date(data) click to toggle source
# File lib/utils/checks.rb, line 64
def self.check_date(data)
  return if data.nil?

  return Date.new(data.year, data.month, data.day) if data.is_a?(Time) || data.is_a?(DateTime)

  return data if data.is_a?(Date)

  data, type = check_datetime_string(data)

  type == 'date' ? Date.new(data.year, data.month, data.day) : data
end
check_date_or_datetime(data) click to toggle source
# File lib/utils/checks.rb, line 42
def self.check_date_or_datetime(data)
  return if data.nil?

  return data if data.is_a?(Time) || data.is_a?(DateTime)

  return data if data.is_a?(Date)

  data, type = check_datetime_string(data)
  type == 'date' ? Date.new(data.year, data.month, data.day) : data
end
check_datetime(data) click to toggle source
# File lib/utils/checks.rb, line 53
def self.check_datetime(data)
  return if data.nil?

  return data if data.is_a?(Time) || data.is_a?(DateTime)

  return Time.new(data.year, data.month, data.day) if data.is_a?(Date)

  data, _type = check_datetime_string(data)
  data
end
check_environment(environment) click to toggle source
# File lib/utils/checks.rb, line 28
def self.check_environment(environment)
  environments = StarkBank::Utils::Environment.constants(false).map { |c| StarkBank::Utils::Environment.const_get(c) }
  raise(ArgumentError, "Select a valid environment: #{environments.join(', ')}") unless environments.include?(environment)

  environment
end
check_language() click to toggle source
# File lib/utils/checks.rb, line 20
def self.check_language
  language = StarkBank.language
  accepted_languages = %w[en-US pt-BR]
  raise(ArgumentError, "Select a valid language: #{accepted_languages.join(', ')}") unless accepted_languages.include?(language)

  language
end
check_private_key(pem) click to toggle source
# File lib/utils/checks.rb, line 35
def self.check_private_key(pem)
  EllipticCurve::PrivateKey.fromPem(pem)
  pem
rescue
  raise(ArgumentError, 'Private-key must be a valid secp256k1 ECDSA string in pem format')
end
check_user(user) click to toggle source
# File lib/utils/checks.rb, line 11
def self.check_user(user)
  return user if user.is_a?(StarkBank::User)

  user = user.nil? ? StarkBank.user : user
  raise(ArgumentError, 'A user is required to access our API. Check our README: https://github.com/starkbank/sdk-ruby/') if user.nil?

  user
end

Private Class Methods

check_datetime_string(data) click to toggle source
# File lib/utils/checks.rb, line 79
def check_datetime_string(data)
  data = data.to_s

  begin
    return [DateTime.strptime(data, '%Y-%m-%dT%H:%M:%S.%L+00:00'), 'datetime']
  rescue ArgumentError
  end

  begin
    return [DateTime.strptime(data, '%Y-%m-%dT%H:%M:%S+00:00'), 'datetime']
  rescue ArgumentError
  end

  begin
    return [DateTime.strptime(data, '%Y-%m-%d'), 'date']
  rescue ArgumentError
    raise(ArgumentError, 'invalid datetime string ' + data)
  end
end