65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
from fastapi import (
|
|
APIRouter,
|
|
status,
|
|
Body, Depends)
|
|
from influxdb_client.client.influxdb_client_async import InfluxDBClientAsync
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from influx_related import get_influxdb_client, get_influx_data, write_influx_data
|
|
from models.execution.model_execution import ExecutionModel
|
|
from mysql_related import get_mysql_db
|
|
from utils.db.db_execution import ExecutionQueryAsync
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get(
|
|
path="/get_influx/",
|
|
name='get data from influxdb, last one hour',
|
|
#response_model=InfluxDBClientAsync,
|
|
responses={
|
|
status.HTTP_401_UNAUTHORIZED: {},
|
|
}
|
|
)
|
|
async def get_influx(client: InfluxDBClientAsync = Depends(get_influxdb_client)):
|
|
return {'results': await get_influx_data(client)}
|
|
|
|
@router.post(
|
|
path="/write_influx/",
|
|
name='write data to influxdb',
|
|
#response_model=InfluxDBClientAsync,
|
|
responses={
|
|
status.HTTP_401_UNAUTHORIZED: {},
|
|
}
|
|
)
|
|
async def write_influx(temp: float, client: InfluxDBClientAsync = Depends(get_influxdb_client)):
|
|
await write_influx_data(client, temp)
|
|
return {"status": "OK"}
|
|
|
|
@router.get(
|
|
path="/get_mysql/",
|
|
name='get data from mysql',
|
|
#response_model=InfluxDBClientAsync,
|
|
responses={
|
|
status.HTTP_401_UNAUTHORIZED: {},
|
|
}
|
|
)
|
|
async def get_mysql(db: AsyncSession = Depends(get_mysql_db)):
|
|
execution_query = ExecutionQueryAsync(db)
|
|
execution_model: list[ExecutionModel] = await execution_query.get_execution()
|
|
res = [i.asdict() for i in execution_model]
|
|
return {"results": res}
|
|
|
|
@router.get(
|
|
path="/get_mysql_by_id/",
|
|
name='get data from mysql',
|
|
#response_model=InfluxDBClientAsync,
|
|
responses={
|
|
status.HTTP_401_UNAUTHORIZED: {},
|
|
}
|
|
)
|
|
async def get_mysql_by_id(id: int, db: AsyncSession = Depends(get_mysql_db)):
|
|
print(f"{db=}")
|
|
execution_query = ExecutionQueryAsync(db)
|
|
execution_model: list[ExecutionModel] = await execution_query.get_execution_by_id(id)
|
|
res = [i.asdict() for i in execution_model]
|
|
return {"results": res} |