21 lines
652 B
Crystal
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
|