Revize 2229e0e1
Přidáno uživatelem Matěj Zeman před asi 3 roky(ů)
server/docker-compose.yml | ||
---|---|---|
13 | 13 |
- POSTGRES_PASSWORD=postgres |
14 | 14 |
- "TZ=Europe/Prague" |
15 | 15 |
ports: |
16 |
- "5433:5432"
|
|
16 |
- "5432:5432"
|
|
17 | 17 |
|
18 | 18 |
app: |
19 | 19 |
build: . |
server/sql_app/api/devices.py | ||
---|---|---|
12 | 12 |
models.Base.metadata.create_all(bind=engine) |
13 | 13 |
templates = Jinja2Templates(directory="templates/devices") |
14 | 14 |
|
15 |
device = APIRouter() |
|
15 |
device = APIRouter(prefix="/api/v1")
|
|
16 | 16 |
|
17 | 17 |
# Dependency |
18 | 18 |
def get_db(): |
... | ... | |
23 | 23 |
db.close() |
24 | 24 |
|
25 | 25 |
|
26 |
@device.get("/devices-web/", response_class=HTMLResponse)
|
|
26 |
@device.get("/devices-web", response_class=HTMLResponse) |
|
27 | 27 |
async def read_devices(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
28 | 28 |
devices = crud.get_devices(db, skip=skip, limit=limit) |
29 | 29 |
return templates.TemplateResponse("devices.html", {"request": request, "devs": devices}) |
30 | 30 |
|
31 | 31 |
|
32 |
@device.post("/device/", response_model=schemas.Device)
|
|
32 |
@device.post("/device", response_model=schemas.Device) |
|
33 | 33 |
def create_device(device: schemas.DeviceCreate, db: Session = Depends(get_db)): |
34 | 34 |
print(crud.create_device(db=db, device=device)) |
35 | 35 |
|
36 | 36 |
|
37 |
@device.get("/devices/", response_model=List[schemas.Device])
|
|
37 |
@device.get("/devices", response_model=List[schemas.Device]) |
|
38 | 38 |
def read_devices(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
39 | 39 |
devices = crud.get_devices(db, skip=skip, limit=limit) |
40 | 40 |
return devices |
server/sql_app/api/licenses.py | ||
---|---|---|
13 | 13 |
models.Base.metadata.create_all(bind=engine) |
14 | 14 |
templates = Jinja2Templates(directory="templates/licenses") |
15 | 15 |
|
16 |
licenses = APIRouter() |
|
16 |
licenses = APIRouter(prefix="/api/v1")
|
|
17 | 17 |
|
18 | 18 |
|
19 | 19 |
# Dependency |
... | ... | |
25 | 25 |
db.close() |
26 | 26 |
|
27 | 27 |
|
28 |
@licenses.get("/licenses-web/", response_class=HTMLResponse)
|
|
28 |
@licenses.get("/licenses-web", response_class=HTMLResponse) |
|
29 | 29 |
async def read_pcs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
30 | 30 |
licenses = crud.get_licenses(db, skip=skip, limit=limit) |
31 | 31 |
return templates.TemplateResponse("licenses.html", {"request": request, "licenses": licenses}) |
32 | 32 |
|
33 | 33 |
|
34 |
@licenses.post("/license/", response_model=schemas.License)
|
|
34 |
@licenses.post("/license", response_model=schemas.License) |
|
35 | 35 |
def create_license(license: schemas.LicenseCreate, db: Session = Depends(get_db)): |
36 | 36 |
print(crud.create_license(db=db, name=license.name, expdate=license.expiration_date)) |
37 | 37 |
|
38 | 38 |
|
39 |
@licenses.get("/licenses/", response_model=List[schemas.License])
|
|
39 |
@licenses.get("/licenses", response_model=List[schemas.License]) |
|
40 | 40 |
def read_licenses(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
41 | 41 |
licenses = crud.get_licenses(db, skip=skip, limit=limit) |
42 | 42 |
return licenses |
43 | 43 |
|
44 | 44 |
|
45 |
@licenses.post("/device-license/", response_model=schemas.DeviceLicense)
|
|
45 |
@licenses.post("/device-license", response_model=schemas.DeviceLicense) |
|
46 | 46 |
def create_device_license(device_license: schemas.DeviceLicenseCreate, db: Session = Depends(get_db)): |
47 | 47 |
print(crud.create_device_license(db=db, device_license=device_license)) |
server/sql_app/api/pcs.py | ||
---|---|---|
11 | 11 |
models.Base.metadata.create_all(bind=engine) |
12 | 12 |
templates = Jinja2Templates(directory="templates/pcs") |
13 | 13 |
|
14 |
pcs = APIRouter() |
|
14 |
pcs = APIRouter(prefix="/api/v1")
|
|
15 | 15 |
|
16 | 16 |
|
17 | 17 |
# Dependency |
... | ... | |
23 | 23 |
db.close() |
24 | 24 |
|
25 | 25 |
|
26 |
@pcs.get("/pcs-web/", response_class=HTMLResponse)
|
|
26 |
@pcs.get("/pcs-web", response_class=HTMLResponse) |
|
27 | 27 |
async def read_pcs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
28 | 28 |
pcs = crud.get_pcs(db, skip=skip, limit=limit) |
29 | 29 |
return templates.TemplateResponse("pcs.html", {"request": request, "pcs": pcs}) |
30 | 30 |
|
31 | 31 |
|
32 |
@pcs.post("/pc/", response_model=schemas.PC)
|
|
32 |
@pcs.post("/pc", response_model=schemas.PC) |
|
33 | 33 |
def create_pc(pc: schemas.PCCreate, db: Session = Depends(get_db)): |
34 | 34 |
print(crud.create_pc(db=db, user=pc.username, host=pc.hostname)) |
35 | 35 |
|
36 | 36 |
|
37 |
@pcs.get("/pcs/", response_model=List[schemas.PC])
|
|
37 |
@pcs.get("/pcs", response_model=List[schemas.PC]) |
|
38 | 38 |
def read_pcs(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
39 | 39 |
pcs = crud.get_pcs(db, skip=skip, limit=limit) |
40 | 40 |
return pcs |
server/sql_app/api/teams.py | ||
---|---|---|
12 | 12 |
models.Base.metadata.create_all(bind=engine) |
13 | 13 |
templates = Jinja2Templates(directory="templates/teams") |
14 | 14 |
|
15 |
teams = APIRouter() |
|
15 |
teams = APIRouter(prefix="/api/v1")
|
|
16 | 16 |
|
17 | 17 |
# Dependency |
18 | 18 |
def get_db(): |
... | ... | |
23 | 23 |
db.close() |
24 | 24 |
|
25 | 25 |
|
26 |
@teams.get("/teams-web/", response_class=HTMLResponse)
|
|
26 |
@teams.get("/teams-web", response_class=HTMLResponse) |
|
27 | 27 |
async def read_devices(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
28 | 28 |
teams = crud.get_teams(db, skip=skip, limit=limit) |
29 | 29 |
return templates.TemplateResponse("teams.html", {"request": request, "teams": teams}) |
30 | 30 |
|
31 | 31 |
|
32 |
@teams.post("/team/", response_model=schemas.Team)
|
|
32 |
@teams.post("/team", response_model=schemas.Team) |
|
33 | 33 |
def create_device(team: schemas.TeamCreate, db: Session = Depends(get_db)): |
34 | 34 |
print(crud.create_team(db=db, name=team.name)) |
35 | 35 |
|
36 | 36 |
|
37 |
@teams.get("/teams/", response_model=List[schemas.Device])
|
|
37 |
@teams.get("/teams", response_model=List[schemas.Device]) |
|
38 | 38 |
def read_devices(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
39 | 39 |
teams = crud.get_teams(db, skip=skip, limit=limit) |
40 | 40 |
return teams |
server/sql_app/api/usb_logs.py | ||
---|---|---|
12 | 12 |
models.Base.metadata.create_all(bind=engine) |
13 | 13 |
templates = Jinja2Templates(directory="templates/usb-logs") |
14 | 14 |
|
15 |
usblogs = APIRouter() |
|
15 |
usblogs = APIRouter(prefix="/api/v1")
|
|
16 | 16 |
|
17 | 17 |
|
18 | 18 |
# Dependency |
... | ... | |
24 | 24 |
db.close() |
25 | 25 |
|
26 | 26 |
|
27 |
@usblogs.get("/logs-web/", response_class=HTMLResponse)
|
|
27 |
@usblogs.get("/logs-web", response_class=HTMLResponse) |
|
28 | 28 |
async def read_logs(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
29 | 29 |
logs = crud.get_logs(db, skip=skip, limit=limit) |
30 | 30 |
return templates.TemplateResponse("logs.html", {"request": request, "logs": logs}) |
31 | 31 |
|
32 | 32 |
|
33 |
@usblogs.post("/usb-logs/", response_model=schemas.USBLog)
|
|
33 |
@usblogs.post("/usb-logs", response_model=schemas.USBLog) |
|
34 | 34 |
def create_device_logs(log: schemas.USBTempBase, db: Session = Depends(get_db)): |
35 | 35 |
dev = crud.find_device(db, log.device) |
36 |
dat = datetime.strptime(log.timestamp, '%Y-%m-%d %H:%M:%S.%f')
|
|
36 |
dat = datetime.strptime(log.timestamp, '%Y-%m-%d %H:%M:%S') |
|
37 | 37 |
if dev is None: |
38 | 38 |
dev = crud.create_device(db=db, device=log.device) |
39 | 39 |
pc = crud.find_pc(db, log.username, log.hostname) |
... | ... | |
43 | 43 |
print(crud.create_device_logs(db=db, item=log, dev_id=dev.id, pc_id=pc.id, date=dat)) |
44 | 44 |
|
45 | 45 |
|
46 |
@usblogs.get("/logs/", response_model=List[schemas.USBLog])
|
|
46 |
@usblogs.get("/logs", response_model=List[schemas.USBLog]) |
|
47 | 47 |
def read_logs(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
48 | 48 |
items = crud.get_logs(db, skip=skip, limit=limit) |
49 | 49 |
return items |
server/sql_app/database.py | ||
---|---|---|
7 | 7 |
SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False} |
8 | 8 |
) |
9 | 9 |
''' |
10 |
SQLALCHEMY_DATABASE_URL = "postgresql://postgres:postgres@localhost:5432/usb_api_db"
|
|
10 |
SQLALCHEMY_DATABASE_URL = "postgresql://postgres:postgres@10.5.0.5:5432/usb_api_db"
|
|
11 | 11 |
|
12 | 12 |
engine = create_engine( |
13 | 13 |
SQLALCHEMY_DATABASE_URL |
server/sql_app/main.py | ||
---|---|---|
7 | 7 |
from fastapi import FastAPI |
8 | 8 |
|
9 | 9 |
|
10 |
app = FastAPI(root_path="/api/v1")
|
|
10 |
app = FastAPI() |
|
11 | 11 |
app.include_router(device) |
12 | 12 |
app.include_router(licenses) |
13 | 13 |
app.include_router(pcs) |
Také k dispozici: Unified diff
re #9416 Fixed timestamp.