class Netki::NetkiPartner
Attributes
Public Class Methods
# 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 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 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 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 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 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 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
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
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
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
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