dnsmanager/src/requests/delegation.cr

21 lines
652 B
Crystal

class DNSManager::Request
IPC::JSON.message DelegateDomain, 25 do
property domain : String
property nameserver1 : String
property nameserver2 : String
def initialize(@domain, @nameserver1, @nameserver2)
end
def to_s(io : IO)
super io
io << " (domain: #{@domain}, ns1: #{@nameserver1}, ns2: #{@nameserver2}"
end
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
user = dnsmanagerd.get_logged_user event
return Response::ErrorUserNotLogged.new unless user
dnsmanagerd.storage.delegate_domain user.uid, @domain, @nameserver1, @nameserver2
end
end
DNSManager.requests << DelegateDomain
end