# Conflicts: # src/control_backend/agents/ri_command_agent.py # src/control_backend/agents/ri_communication_agent.py # src/control_backend/api/v1/endpoints/command.py # src/control_backend/main.py # test/integration/api/endpoints/test_command_endpoint.py
21 lines
569 B
Python
21 lines
569 B
Python
import logging
|
|
|
|
from fastapi import APIRouter, Request
|
|
|
|
from control_backend.schemas.ri_message import SpeechCommand
|
|
|
|
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 = request.app.state.endpoints_pub_socket
|
|
await pub_socket.send_multipart([topic, command.model_dump_json().encode()])
|
|
|
|
return {"status": "Command received"}
|