diff --git a/src/judas_server/backend/handler/telemetry/initial_handler.py b/src/judas_server/backend/handler/telemetry/initial_handler.py new file mode 100644 index 0000000..eb25abc --- /dev/null +++ b/src/judas_server/backend/handler/telemetry/initial_handler.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +"""Initial telemetry handler.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +from judas_protocol import Message + +from judas_server.backend.handler.base_handler import BaseHandler + +if TYPE_CHECKING: + from judas_server.backend import BackendServer + from judas_server.backend.client import Client + + +class InitialTelemetryHandler(BaseHandler): + """Handles the initial telemetry message from a client.""" + + def __init__(self, backend_server: BackendServer) -> None: + """Initialize the handler.""" + super().__init__(backend_server) + + def handle(self, client: Client, message: Message) -> None: + """Handle the initial telemetry message.""" + self.logger.debug( + f"Handling initial telemetry message from {client}..." + ) + + client.initial_telemetry = message.payload + self.backend_server.known_clients[client.id]["initial_telemetry"] = ( # type: ignore + message.payload + )