class DNSManager::Request
	IPC::JSON.message Login, 0 do
		property token : String

		def initialize(@token)
		end

		def handle(dnsmanagerd : DNSManager::Service, event : IPC::Event)
			response = dnsmanagerd.decode_token token
			case response
			when AuthD::Response::User
				dnsmanagerd.logged_users[event.fd] = response.user
				# In case we want to log their last connection.
				#dnsmanagerd.auth.edit_profile_content user.uid, {
				#	"dnsmanager-last-connection" => JSON::Any.new Time.utc.to_s
				#}
				dnsmanagerd.storage.ensure_user_data response.user.uid
			else
				Response::ErrorInvalidToken.new
			end
		rescue e
			# FIXME: Should those be logged?
			Response::Error.new "unauthorized"
		end
	end
	DNSManager.requests << Login
end