37 lines
		
	
	
	
		
			1,004 B
		
	
	
	
		
			Crystal
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1,004 B
		
	
	
	
		
			Crystal
		
	
	
	
	
	
require "../src/storage.cr"
 | 
						|
 | 
						|
alias DSZ = DNSManager::Storage::Zone
 | 
						|
 | 
						|
storage = DNSManager::Storage.new "STORAGE"
 | 
						|
 | 
						|
user_data = DNSManager::Storage::UserData.new 1004
 | 
						|
storage.user_data << user_data rescue nil
 | 
						|
 | 
						|
domain = "test.example.com"
 | 
						|
zone = DSZ.new domain
 | 
						|
 | 
						|
a_record    = DSZ::A.new    "www",  600.to_u32, "127.0.0.1"
 | 
						|
aaaa_record = DSZ::AAAA.new "www",  600.to_u32, "::1"
 | 
						|
mx_record   = DSZ::MX.new   "mail", 600.to_u32, "127.0.0.1", 5.to_u32
 | 
						|
spf_record  = DSZ::SPF.new  "test.example.com.", 600.to_u32, "target", "spf2lol",
 | 
						|
                ([] of DSZ::SPF::Mechanism), DSZ::SPF::Qualifier::SoftFail
 | 
						|
 | 
						|
zone.resources << a_record
 | 
						|
zone.resources << aaaa_record
 | 
						|
zone.resources << mx_record
 | 
						|
zone.resources << spf_record
 | 
						|
 | 
						|
# Add the new domain to the user.
 | 
						|
user_data.domains << domain
 | 
						|
storage.update_user_data user_data
 | 
						|
 | 
						|
# Add the new zone in the database.
 | 
						|
storage.zones_by_domain.update_or_create domain, zone
 | 
						|
 | 
						|
pp! storage.user_data
 | 
						|
puts "Zones !!!"
 | 
						|
pp! storage.zones
 | 
						|
storage.zones.to_a.each do |z|
 | 
						|
	pp! z
 | 
						|
end
 | 
						|
 |