class CivicSIPSdk::AppConfig

Constants

REQUIRED_KEYS
VALID_ENVS

Attributes

env[R]
id[R]
private_key[R]
secret[R]

Public Class Methods

new(id:, env:, private_key:, secret:) click to toggle source

Creates a new instance of CivicSIPSdk::AppConfig. This is used to configure the SDK connection parameters to the Civic SIP service.

It raises an ArgumentError if any argument is nil.

@param id [String] The application id. @param env [Symbol] The application environment. Defaults to :prod if the value is incorrect. @param private_key [String] The application's private signing key. @param secret [String] The application secret

# File lib/civic_sip_sdk/app_config.rb, line 23
def initialize(id:, env:, private_key:, secret:)
  @id = id
  @env = VALID_ENVS.include?(env.to_sym) ? env.to_sym : VALID_ENVS.last
  @private_key = private_key
  @secret = secret

  validate
end

Private Instance Methods

validate() click to toggle source
# File lib/civic_sip_sdk/app_config.rb, line 34
def validate
  validation_errors = REQUIRED_KEYS.map { |rk| instance_variable_get("@#{rk[:name]}").nil? ? rk[:error] : nil }
                                   .compact

  raise ArgumentError.new(validation_errors.join("\n")) unless validation_errors.empty?
end