Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 4911f0ea

Přidáno uživatelem Matěj Zeman před asi 2 roky(ů)

re #9577 Api code documentation.

Zobrazit rozdíly:

server/sql_app/api/devices_web.py
11 11
from fastapi.templating import Jinja2Templates
12 12

  
13 13
models.Base.metadata.create_all(bind=engine)
14
templates = Jinja2Templates(directory="templates/devices")
15 14

  
15
# Path to html templates used in this file
16
templates = Jinja2Templates(directory="../templates/devices")
17

  
18
# prefix used for all endpoints in this file
16 19
device_web = APIRouter(prefix="/api/v1")
17 20

  
18 21

  
......
27 30

  
28 31
@device_web.get("/devices-web", response_class=HTMLResponse)
29 32
async def read_devices(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
33
    """
34
    Returns template with all devices and its current states
35
    """
30 36
    devices = crud.get_devices(db, skip=skip, limit=limit)
31 37
    statuses = []
38
    # adding state for each device in list
32 39
    for i in range(0, len(devices)):
33 40
        statuses.append(devices[i].logs[len(devices[i].logs)-1].status)
34 41
    licenses = crud.get_licenses(db, skip=skip, limit=limit)
......
39 46
@device_web.post("/devices-web", response_class=HTMLResponse)
40 47
async def filter_devices(request: Request, skip: int = 0, limit: int = 100, lic: str = Form("all"),
41 48
                         db: Session = Depends(get_db)):
49
    """
50
    Endpoint used for filtering devices by license. returns html template with only
51
    devices that has assigned license defined by user input
52
    """
42 53
    devices = crud.get_devices(db, skip=skip, limit=limit)
43 54
    def_devices = []
44 55
    for dev in devices:
45 56
        for l in dev.licenses:
46 57
            if dev not in def_devices and l.licenses.name == lic:
47 58
                def_devices.append(dev)
59
    # if input was default all
48 60
    if lic == "all":
49 61
        def_devices = devices
50 62
    statuses = []
......
57 69

  
58 70
@device_web.get("/device-license/{device_id}", response_class=HTMLResponse)
59 71
async def connect_dev_lic(request: Request, device_id: int, db: Session = Depends(get_db)):
72
    """
73
    Returns template with one device and all available licenses that can be assigned to it.
74
    """
60 75
    device = crud.get_device(db, device_id)
61 76
    licenses = crud.get_licenses(db, 0, 100)
62 77
    return templates.TemplateResponse("devicelicense.html",
......
66 81
@device_web.post("/devices-web/{device_id}", response_class=HTMLResponse)
67 82
async def connect_post(request: Request, device_id: int, lic: str = Form(...), skip: int = 0, limit: int = 100,
68 83
                       db: Session = Depends(get_db)):
84
    """
85
    Endpoint called from template for connecting device with license. Adds entry to devices_licenses
86
    table and returns template with all devices in database
87
    """
69 88
    crud.create_device_license(db, device_id, int(lic), datetime.now())
70 89
    devices = crud.get_devices(db, skip=skip, limit=limit)
71 90
    statuses = []
91
    # adding state for each device in list
72 92
    for i in range(0, len(devices)):
73 93
        statuses.append(devices[i].logs[len(devices[i].logs) - 1].status)
74 94
    licenses = crud.get_licenses(db, skip=skip, limit=limit)

Také k dispozici: Unified diff