import logging from fastapi import APIRouter, Request from control_backend.schemas.program import Program logger = logging.getLogger(__name__) router = APIRouter() @router.post("/program", status_code=202) async def receive_message(program: Program, request: Request): """ Receives a BehaviorProgram, pydantic checks it. Converts it into real Phase objects. """ logger.debug("Received raw program: %s", program) # send away topic = b"program" body = program.model_dump_json().encode() pub_socket = request.app.state.endpoints_pub_socket await pub_socket.send_multipart([topic, body]) return {"status": "Program parsed"}