diff options
author | Botond Hende <nettingman@gmail.com> | 2024-09-01 00:27:54 +0200 |
---|---|---|
committer | Botond Hende <nettingman@gmail.com> | 2024-09-01 00:27:54 +0200 |
commit | e66fb136c8fd10fe8bafb273c938a3d332d997ba (patch) | |
tree | 94623092ecb1bb6177ecc7b922aeaec429cc08d3 /apirouters/tasks.py | |
parent | 21019bc8414e60495573807b0fe0eb562a0e8876 (diff) |
setting tasks for ships
Diffstat (limited to 'apirouters/tasks.py')
-rw-r--r-- | apirouters/tasks.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/apirouters/tasks.py b/apirouters/tasks.py new file mode 100644 index 0000000..806de91 --- /dev/null +++ b/apirouters/tasks.py @@ -0,0 +1,42 @@ +from typing import Annotated +from fastapi import APIRouter, Depends + +from ..modules.database import cursor, conn +from ..modules.ships import Ship +from ..modules import task_type +from .agents import auth_agent, Agent + +router = APIRouter() + + +@router.get("/tasks") +async def get_tasks(agent: Annotated[Agent, Depends(auth_agent)]): + ships = [] + for ship in agent.ships.values(): + ship.load_task() + ships.append({"symbol": ship.symbol, "task": ship.task}) + + return {"ships": ships} + + +@router.get("/task/{ship_symbol}") +async def get_tasks(ship_symbol: str, agent: Annotated[Agent, Depends(auth_agent)]): + for current_ship in agent.ships.values(): + if current_ship.symbol == ship_symbol: + current_ship.load_task() + return {"symbol": current_ship.symbol, "task": current_ship.task} + + return {"error": "Unknown ship symbol."} + + +@router.post("/task/{ship_symbol}/set/{task_type}") +async def get_tasks(ship_symbol: str, task: str, agent: Annotated[Agent, Depends(auth_agent)]): + if task not in task_type.task_types: + return {"error": "Invalid task."} + + for current_ship in agent.ships.values(): + if current_ship.symbol == ship_symbol: + current_ship.set_task(task) + return {"symbol": current_ship.symbol, "task": current_ship.task} + + return {"error": "Unknown ship symbol."} |