Files
FastAPI_async/api/testAPI.py
2025-09-26 10:47:57 +02:00

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}