Projekt

Obecné

Profil

Stáhnout (1.36 KB) Statistiky
| Větev: | Tag: | Revize:
1
from typing import List
2
from fastapi import Depends, FastAPI, HTTPException, APIRouter, Form
3
from sqlalchemy.orm import Session
4
from ...sql_app import crud, models, schemas
5
from ..database import SessionLocal, engine
6

    
7
models.Base.metadata.create_all(bind=engine)
8

    
9
usblogs = APIRouter()
10

    
11

    
12
# Dependency
13
def get_db():
14
    db = SessionLocal()
15
    try:
16
        yield db
17
    finally:
18
        db.close()
19

    
20

    
21
@usblogs.post("/usb-logs/", response_model=schemas.USBLog)
22
def create_device_logs(log: schemas.USBTempBase, db: Session = Depends(get_db)):
23
    dev = crud.find_device(db, log.device)
24
    if dev is None:
25
        dev = crud.create_device(db=db, device=log.device)
26
    pc = crud.find_pc(db, log.username, log.hostname)
27
    if pc is None:
28
        pc = crud.create_pc(db=db, user=log.username, host=log.hostname)
29

    
30
    print(crud.create_device_logs(db=db, item=log, dev_id=dev.id, pc_id=pc.id))
31

    
32

    
33
@usblogs.get("/logs/", response_model=List[schemas.USBLog])
34
def read_logs(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
35
    items = crud.get_logs(db, skip=skip, limit=limit)
36
    return items
37

    
38

    
39
@usblogs.get("/logs/{device_id}", response_model=List[schemas.USBLog])
40
def read_log(device_id: int, db: Session = Depends(get_db)):
41
    db_log = crud.get_log(db, device_id=device_id)
42
    if db_log is None:
43
        raise HTTPException(status_code=404, detail="Logs not found")
44
    return db_log
(5-5/5)