class Fog::DNS::Dnsimple::Mock
Public Class Methods
data()
click to toggle source
# File lib/fog/dnsimple/dns.rb, line 29 def self.data @data ||= Hash.new do |hash, key| hash[key] = { domains: [], records: {} } end end
new(options = {})
click to toggle source
# File lib/fog/dnsimple/dns.rb, line 42 def initialize(options = {}) @dnsimple_token = options[:dnsimple_token] end
reset()
click to toggle source
# File lib/fog/dnsimple/dns.rb, line 38 def self.reset @data = nil end
Public Instance Methods
create_domain(zone_name)
click to toggle source
# File lib/fog/dnsimple/requests/dns/create_domain.rb, line 29 def create_domain(zone_name) body = { "id" => Fog::Mock.random_numbers(1).to_i, "account_id" => @dnsimple_account, "registrant_id" => nil, "name" => zone_name, "unicode_name" => zone_name, "token" => "4fIFYWYiJayvL2tkf_mkBkqC4L+4RtYqDA", "state" => "registered", "auto_renew" => nil, "private_whois" => false, "expires_on" => Date.today + 365, "created_at" => Time.now.iso8601, "updated_at" => Time.now.iso8601, } self.data[:domains] << body response = Excon::Response.new response.status = 201 response.body = { "data" => body } response end
create_record(zone_name, name, type, content, options = {})
click to toggle source
# File lib/fog/dnsimple/requests/dns/create_record.rb, line 38 def create_record(zone_name, name, type, content, options = {}) body = { "id" => Fog::Mock.random_numbers(1).to_i, "domain_id" => 1, "name" => name, "content" => content, "ttl" => 3600, "priority" => 0, "type" => type, "system_record" => false, "created_at" => Time.now.iso8601, "updated_at" => Time.now.iso8601, }.merge(options) self.data[:records][zone_name] ||= [] self.data[:records][zone_name] << body response = Excon::Response.new response.status = 201 response.body = { "data" => body } response end
data()
click to toggle source
# File lib/fog/dnsimple/dns.rb, line 46 def data self.class.data[@dnsimple_token] end
delete_domain(zone_name)
click to toggle source
# File lib/fog/dnsimple/requests/dns/delete_domain.rb, line 25 def delete_domain(zone_name) self.data[:records].delete(zone_name) self.data[:domains].reject! { |domain| domain["id"] == zone_name || domain["name"] == zone_name } response = Excon::Response.new response.status = 204 response end
delete_record(zone_name, record_id)
click to toggle source
# File lib/fog/dnsimple/requests/dns/delete_record.rb, line 20 def delete_record(zone_name, record_id) self.data[:records][zone_name].reject! { |record| record["id"] == record_id } response = Excon::Response.new response.status = 204 response end
get_domain(zone_name)
click to toggle source
# File lib/fog/dnsimple/requests/dns/get_domain.rb, line 26 def get_domain(zone_name) response = Excon::Response.new payload = self.data[:domains].find { |domain| domain["id"] == zone_name || domain["name"] == zone_name } if payload response.status = 200 response.body = { "data" => payload } else # response.status = 404 # response.body = { "message" => "Domain `#{zone_name}` not found" } raise Excon::Errors::NotFound, "Domain `#{zone_name}` not found" end response end
get_record(zone_name, record_id)
click to toggle source
# File lib/fog/dnsimple/requests/dns/get_record.rb, line 25 def get_record(zone_name, record_id) response = Excon::Response.new if self.data[:records].key?(zone_name) payload = self.data[:records][zone_name].find { |record| record["id"] == record_id } if payload response.status = 200 response.body = { "data" => payload } else # response.status = 404 # response.body = { "message" => "Record `#{record_id}` not found" } raise Excon::Errors::NotFound, "Record `#{record_id}` not found" end else # response.status = 404 # response.body = { "message" => "Domain `#{zone_name}` not found" } raise Excon::Errors::NotFound, "Domain `#{zone_name}` not found" end response end
list_all_domains(_query: {})
click to toggle source
# File lib/fog/dnsimple/requests/dns/list_all_domains.rb, line 26 def list_all_domains(_query: {}) response = Excon::Response.new response.status = 200 response.body = { "data" => self.data[:domains], "pagination" => { "current_page" => nil, "per_page" => nil, "total_entries" => 60, "total_pages" => 2 } } response end
list_all_records(zone_name, _query: {})
click to toggle source
# File lib/fog/dnsimple/requests/dns/list_all_records.rb, line 27 def list_all_records(zone_name, _query: {}) response = Excon::Response.new response.status = 200 response.body = { "data" => Array(self.data[:records][zone_name]), "pagination" => { "current_page" => nil, "per_page" => nil, "total_entries" => 60, "total_pages" => 2 } } response end
list_domains(query: {})
click to toggle source
# File lib/fog/dnsimple/requests/dns/list_domains.rb, line 23 def list_domains(query: {}) page = query[:page] || 1 per_page = query[:per_page] || 30 response = Excon::Response.new response.status = 200 response.body = { "data" => self.data[:domains], "pagination" => { "current_page" => page, "per_page" => per_page, "total_entries" => 60, "total_pages" => 2 } } response end
list_records(zone_name, query: {})
click to toggle source
# File lib/fog/dnsimple/requests/dns/list_records.rb, line 24 def list_records(zone_name, query: {}) page = query[:page] || 1 per_page = query[:per_page] || 30 response = Excon::Response.new response.status = 200 response.body = { "data" => Array(self.data[:records][zone_name]), "pagination" => { "current_page" => page, "per_page" => per_page, "total_entries" => 60, "total_pages" => 2 } } response end
reset_data()
click to toggle source
# File lib/fog/dnsimple/dns.rb, line 50 def reset_data self.class.data.delete(@dnsimple_token) end
update_record(zone_name, record_id, options)
click to toggle source
# File lib/fog/dnsimple/requests/dns/update_record.rb, line 33 def update_record(zone_name, record_id, options) record = self.data[:records][zone_name].find { |record| record["id"] == record_id } response = Excon::Response.new if record.nil? response.status = 400 else response.status = 200 record.merge!(options) record["updated_at"] = Time.now.iso8601 response.body = { "data" => record } end response end