Module: DIDWW::Client

Defined in:
lib/didww/client.rb

Constant Summary collapse

BASE_URLS =
{
  sandbox: 'https://sandbox-api.didww.com/v3/'.freeze,
  production: 'https://api.didww.com/v3/'.freeze
}.freeze
DEFAULT_MODE =
:sandbox
DEFAULT_API_VERSION =
'2026-04-16'
RESOURCE_CLASSES =
{
  capacity_pools: 'CapacityPool',
  exports: 'Export',
  shared_capacity_groups: 'SharedCapacityGroup',
  cities: 'City',
  countries: 'Country',
  did_group_types: 'DidGroupType',
  did_groups: 'DidGroup',
  dids: 'Did',
  orders: 'Order',
  pops: 'Pop',
  regions: 'Region',
  voice_in_trunk_groups: 'VoiceInTrunkGroup',
  voice_in_trunks: 'VoiceInTrunk',
  voice_out_trunks: 'VoiceOutTrunk',
  available_dids: 'AvailableDid',
  did_reservations: 'DidReservation',
  address_requirements: 'AddressRequirement',
  identities: 'Identity',
  proofs: 'Proof',
  addresses: 'Address',
  permanent_supporting_documents: 'PermanentSupportingDocument',
  encrypted_file: 'EncryptedFile',
  address_verifications: 'AddressVerification',
  address_requirement_validation: 'AddressRequirementValidation',
  areas: 'Area',
  proof_types: 'ProofType',
  supporting_document_templates: 'SupportingDocumentTemplate',
  public_keys: 'PublicKey',
  nanpa_prefixes: 'NanpaPrefix',
  did_history: 'DidHistory',
  emergency_requirements: 'EmergencyRequirement',
  emergency_requirement_validation: 'EmergencyRequirementValidation',
  emergency_calling_services: 'EmergencyCallingService',
  emergency_verifications: 'EmergencyVerification',
}.freeze

Class Method Summary collapse

Class Method Details

.api_base_urlObject



52
53
54
# File 'lib/didww/client.rb', line 52

def api_base_url
  ENV['DIDWW_API_URL'].presence || BASE_URLS[api_mode]
end

.api_keyObject



36
37
38
# File 'lib/didww/client.rb', line 36

def api_key
  @@api_key
end

.api_modeObject



32
33
34
# File 'lib/didww/client.rb', line 32

def api_mode
  @@api_mode || DEFAULT_MODE
end

.api_mode=(arg) ⇒ Object



101
102
103
104
105
106
# File 'lib/didww/client.rb', line 101

def api_mode=(arg)
  unless BASE_URLS.keys.include?(arg)
    raise ArgumentError.new("Mode should be in #{BASE_URLS.keys} (given '#{arg}').")
  end
  @@api_mode = arg
end

.api_versionObject



40
41
42
# File 'lib/didww/client.rb', line 40

def api_version
  @@api_version
end

.balanceObject



56
57
58
# File 'lib/didww/client.rb', line 56

def balance
  Resource::Balance.all.first
end

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (DIDWW::Client)

    the object that the method was called on



25
26
27
28
29
30
# File 'lib/didww/client.rb', line 25

def configure
  yield self if block_given?
  connect!
  require_didww_resources
  self
end

.customize_connection(&block) ⇒ Object



21
22
23
# File 'lib/didww/client.rb', line 21

def customize_connection(&block)
  self._customize_conn_block = block
end

.with_api_version(api_version) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/didww/client.rb', line 44

def with_api_version(api_version)
  old_api_version = self.api_version
  self.api_version = api_version
  yield
ensure
  self.api_version = old_api_version
end