33 lines
783 B
Crystal
33 lines
783 B
Crystal
require "ipc/json"
|
|
require "grok"
|
|
|
|
class DNSManager::Request
|
|
IPC::JSON.message NewToken, 18 do
|
|
property domain : String
|
|
property rrid : UInt32
|
|
|
|
def initialize(@domain, @rrid)
|
|
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.new_token user.uid, @domain, @rrid
|
|
end
|
|
end
|
|
DNSManager.requests << NewToken
|
|
|
|
IPC::JSON.message UseToken, 19 do
|
|
property token : String
|
|
property address : String
|
|
|
|
def initialize(@token, @address)
|
|
end
|
|
|
|
def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event) : IPC::JSON
|
|
dnsmanagerd.storage.use_token @token, @address
|
|
end
|
|
end
|
|
DNSManager.requests << UseToken
|
|
end
|