Revize 4911f0ea
Přidáno uživatelem Matěj Zeman před asi 2 roky(ů)
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
re #9577 Api code documentation.