summaryrefslogtreecommitdiff
path: root/apirouters/tasks.py
blob: 806de910ddeb65a5c019ec87d434c95eb8bb3fc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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."}