class DnsMadeEasy
Public Class Methods
new(api_key, api_secret, sandbox = false)
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 12 def initialize (api_key, api_secret, sandbox = false) raise "api_key is undefined" unless api_key raise "api_secret is undefined" unless api_secret @api_key = api_key @api_secret = api_secret self.class.headers request_headers if sandbox self.class.base_uri 'https://api.sandbox.dnsmadeeasy.com/V2.0' else self.class.base_uri 'https://api.dnsmadeeasy.com/V2.0' end end
Public Instance Methods
create_a_record(domain_name, name, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 112 def create_a_record(domain_name, name, value, options = {}) # todo: match IPv4 for value self.create_record(domain_name, name, "A", value, options) end
create_aaaa_record(domain_name, name, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 117 def create_aaaa_record(domain_name, name, value, options = {}) # todo: match IPv6 for value self.create_record(domain_name, name, "AAAA", value, options) end
create_cname_record(domain_name, name, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 132 def create_cname_record(domain_name, name, value, options = {}) # todo: match CNAME value self.create_record(domain_name, name, "CNAME", value, options) end
create_domain(domain_name)
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 66 def create_domain(domain_name) self.create_domains([domain_name]) end
create_domains(names = Array())
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 62 def create_domains(names = Array()) self.class.post('/dns/managed/', :body => { "names" => names }.to_json ) end
create_httpred_record(domain_name, name, value, redirectType = "STANDARD - 302", description = "", keywords = "", title = "", options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 158 def create_httpred_record(domain_name, name, value, redirectType = "STANDARD - 302", description = "", keywords = "", title = "", options = {}) options.merge!({ "redirectType" => redirectType, "description" => description, "keywords" => keywords, "title" => title }) self.create_record(domain_name, name, "HTTPRED", value, options) end
create_mx_record(domain_name, name, priority, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 146 def create_mx_record(domain_name, name, priority, value, options = {}) options.merge!({ "mxLevel" => priority }) self.create_record(domain_name, name, "MX", value, options) end
create_ns_record(domain_name, name, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 137 def create_ns_record(domain_name, name, value, options = {}) # todo: match domainname for value self.create_record(domain_name, name, "NS", value, options) end
create_ptr_record(domain_name, name, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 122 def create_ptr_record(domain_name, name, value, options = {}) # todo: match PTR value self.create_record(domain_name, name, "PTR", value, options) end
create_record(domain_name, name, type, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 103 def create_record(domain_name, name, type, value, options = {}) id = get_id_by_domain(domain_name) body = { "name" => name, "type" => type, "value" => value, "ttl" => 3600, "gtdLocation" => "DEFAULT" } result = body.merge(options) self.class.post("/dns/managed/#{id}/records/", :body => result.to_json ) end
create_spf_record(domain_name, name, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 142 def create_spf_record(domain_name, name, value, options = {}) self.create_record(domain_name, name, "SPF", value, options) end
create_srv_record(domain_name, name, priority, weight, port, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 152 def create_srv_record(domain_name, name, priority, weight, port, value, options = {}) options.merge!({ "priority" => priority, "weight" => weight, "port" => port }) self.create_record(domain_name, name, "SRV", value, options) end
create_txt_record(domain_name, name, value, options = {})
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 127 def create_txt_record(domain_name, name, value, options = {}) # todo: match TXT value self.create_record(domain_name, name, "TXT", value, options) end
delete_domain(domain_name)
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 57 def delete_domain(domain_name) id = get_id_by_domain(domain_name) self.class.delete("/dns/managed/#{id}") end
delete_record(domain_name, record_id)
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 97 def delete_record(domain_name, record_id) id = get_id_by_domain(domain_name) self.class.delete("/dns/managed/#{id}/records/#{record_id}/") end
delete_records(domain_name, ids = [])
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 91 def delete_records(domain_name, ids = []) id = get_id_by_domain(domain_name) self.class.delete("/dns/managed/#{id}/records/", :body => ids.to_json) end
domain(domain_name)
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 52 def domain(domain_name) id = get_id_by_domain(domain_name) self.class.get("/dns/managed/#{id}") end
domains()
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 48 def domains self.class.get('/dns/managed/') end
find_record_id(domain_name, name, type)
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 79 def find_record_id(domain_name, name, type) records = self.records_for(domain_name) ids = records['data'].collect do |r| if r['name'] == name && r['type'] == type r['id'] end end.compact ids end
get_id_by_domain(domain_name)
click to toggle source
————- DOMAINS ————-
# File lib/dnsmadeeasyapi.rb, line 43 def get_id_by_domain(domain_name) domain = self.class.get("/dns/managed/id/#{domain_name}") return domain['id'] end
records_for(domain_name)
click to toggle source
————- RECORDS ————-
# File lib/dnsmadeeasyapi.rb, line 74 def records_for(domain_name) id = get_id_by_domain(domain_name) self.class.get("/dns/managed/#{id}/records") end
request_headers()
click to toggle source
# File lib/dnsmadeeasyapi.rb, line 28 def request_headers request_date = Time.now.httpdate hmac = OpenSSL::HMAC.hexdigest('sha1', @api_secret, request_date) { 'Accept' => 'application/json', 'x-dnsme-apiKey' => @api_key, 'x-dnsme-requestDate' => request_date, 'x-dnsme-hmac' => hmac } end