23 lines
611 B
Python
23 lines
611 B
Python
from fastapi import APIRouter, Request
|
|
import logging
|
|
|
|
from zmq import Socket
|
|
|
|
from control_backend.schemas.ri_message import SpeechCommand, RIEndpoint
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/command", status_code=202)
|
|
async def receive_command(command: SpeechCommand, request: Request):
|
|
# Validate and retrieve data.
|
|
SpeechCommand.model_validate(command)
|
|
topic = b"command"
|
|
pub_socket: Socket = request.app.state.internal_comm_socket
|
|
pub_socket.send_multipart([topic, command.model_dump_json().encode()])
|
|
|
|
|
|
return {"status": "Command received"}
|