class Netki::NetkiPartner

Attributes

api_key[RW]

The Netki object must be initialized with the Partner ID and API Key to be useful

  • Partner ID -> Netki Partner ID is available on your partner API Key Page

  • API Key -> Netki API Key is available only upon API Key creation. Be sure to store it somewhere safe!

api_url[RW]

The Netki object must be initialized with the Partner ID and API Key to be useful

  • Partner ID -> Netki Partner ID is available on your partner API Key Page

  • API Key -> Netki API Key is available only upon API Key creation. Be sure to store it somewhere safe!

partner_id[RW]

The Netki object must be initialized with the Partner ID and API Key to be useful

  • Partner ID -> Netki Partner ID is available on your partner API Key Page

  • API Key -> Netki API Key is available only upon API Key creation. Be sure to store it somewhere safe!

Public Class Methods

new(partner_id=nil, api_key=nil, api_url='https://api.netki.com') click to toggle source
# File lib/netki/netki.rb, line 202
def initialize(partner_id=nil, api_key=nil, api_url='https://api.netki.com')
  @partner_id = partner_id
  @api_key = api_key
  @api_url = api_url
end

Public Instance Methods

create_new_domain(domain_name, partner_id=nil) click to toggle source

Create a new domain

  • domain_name -> Name of new domain to create

  • partner_id -> (optional) Partner that should own the new domain

# File lib/netki/netki.rb, line 243
def create_new_domain(domain_name, partner_id=nil)
  api_data = {}
  api_data['partner_id'] = partner_id unless partner_id.nil?
  Netki.process_request(@api_key, @partner_id, "#{@api_url}/v1/partner/domain/#{domain_name}", method='POST', JSON.dump(api_data))
  true
end
create_new_partner(partner_name) click to toggle source

Create a new Partner

  • partner_name -> Name of new sub-partner to create

# File lib/netki/netki.rb, line 212
def create_new_partner(partner_name)
  encoded_partner_name = URI.encode(partner_name)
  response = Netki.process_request(@api_key, @partner_id, "#{@api_url}/v1/admin/partner/#{encoded_partner_name}", method='POST')
  response['partner']['id']
end
create_new_walletname(domain_name, name, wallets={}, external_id=nil) click to toggle source

Create a new Wallet Name object using this factory method.

  • domain_name -> The pre-configured domain name you would like to add this new wallet name to

  • name -> The DNS name that you would like this new wallet name to have (ie.. name.domain_name)

  • wallets -> This is a hash where the key is the currency (ie.. btc, ltc, dgc, tusd) and the value is:

    the wallet address OR
    URL of the BIP32 / BIP70 address server OR
    a hash containing an :address and other metadata
  • external_id -> Any unique external ID that you may want to use to track this specific wallet name

# File lib/netki/netki.rb, line 309
def create_new_walletname(domain_name, name, wallets={}, external_id=nil)
  new_wn = WalletName.new(domain_name, name, wallets, external_id: external_id)
  new_wn.set_api_opts(@api_url, @partner_id, @api_key)
  new_wn
end
delete_domain(domain_name) click to toggle source

Delete a Domain

  • domain_name -> Name of delete to delete

# File lib/netki/netki.rb, line 293
def delete_domain(domain_name)
  Netki.process_request(@api_key, @partner_id, "#{@api_url}/v1/partner/domain/#{domain_name}", method='DELETE')
  true
end
delete_partner(partner_name) click to toggle source

Delete a Partner

  • partner_name -> Name of sub-partner to delete

NOTE: You cannot delete your own partner resource

# File lib/netki/netki.rb, line 232
def delete_partner(partner_name)
  encoded_partner_name = URI.encode(partner_name)
  Netki.process_request(@api_key, @partner_id, "#{@api_url}/v1/admin/partner/#{encoded_partner_name}", method='DELETE')
  true
end
get_domain_dnssec(domain_name) click to toggle source

Get DNSSEC Status of Domain

  • domain_name -> (Required) Name of domain to get DNSSEC status for

Returns a hash containing the follow DNSSEC-related keys:

  • ds_records (list)

  • public_key_signing_key

  • nextroll_date

  • nameservers (list)

# File lib/netki/netki.rb, line 285
def get_domain_dnssec(domain_name)
  Netki.process_request(@api_key, @partner_id, "#{@api_url}/v1/partner/domain/dnssec/#{domain_name}", method='GET')
end
get_domain_status(domain_name=nil) click to toggle source

List status of domain resources

  • domain_name -> (Optional) Name of domain to return status for

If domain_name is omitted status is returned for all available domain resources.

Returns a list of Hashes, each containing current status for each domain

# File lib/netki/netki.rb, line 267
def get_domain_status(domain_name=nil)
  uri="#{@api_url}/v1/partner/domain"
  uri << "/#{domain_name}" unless domain_name.nil?

  response = Netki.process_request(@api_key, @partner_id, uri, method='GET')
  response['domains'] || response
end
get_domains() click to toggle source

List available domain resources Returns a list of domain Hashes, each containing a domain_name and tld_type key

# File lib/netki/netki.rb, line 254
def get_domains()
  response = Netki.process_request(@api_key, @partner_id, "#{@api_url}/api/domain", method='GET')
  response['domains']
end
get_partners() click to toggle source

List current and sub partners Returns a list of partner Hashes, each containing an id and name key

# File lib/netki/netki.rb, line 222
def get_partners()
  response = Netki.process_request(@api_key, @partner_id, "#{@api_url}/v1/admin/partner", method='GET')
  response['partners']
end
get_wallet_names(domain_name=nil, external_id=nil) click to toggle source

Returns an array of WalletName objects based on the given search parameters:

  • domain_name -> The pre-configured domain that you have already been using for wallet names

  • external_id -> The external ID previously given to the single wallet name you want to retrieve

# File lib/netki/netki.rb, line 319
def get_wallet_names(domain_name=nil, external_id=nil)
  args = []
  args.push("domain_name=#{domain_name}") if domain_name
  args.push("external_id=#{external_id}") if external_id

  uri = "#{@api_url}/v1/partner/walletname"
  uri = (uri + "?" + args.join("&")) unless args.empty?
  response = Netki.process_request(@api_key, @partner_id, uri, method='GET')

  return [] if !response.has_key? 'wallet_name_count' || response['wallet_name_count'] == 0

  wn_list = []
  response['wallet_names'].each do |wn|
    wallets = {}
    wn['wallets'].each do |wallet|
      wallets[wallet['currency']] = wallet['wallet_address']
    end
    wn_obj = WalletName.new(wn['domain_name'], wn['name'], wallets, external_id: wn['external_id'], id: wn['id'])
    wn_obj.set_api_opts(@api_url, @partner_id, @api_key)
    wn_list.push(wn_obj)
  end
  wn_list
end