Select Git revision
GeneralRouter.py
-
Robert Goldmann authoredRobert Goldmann authored
GeneralRouter.py 1.46 KiB
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from Settings import VERSION
from logic.Dependencies import get_database
from logic.database import Schemas, DatabaseInfoProvider
router = APIRouter(
prefix='/general',
tags=['general']
)
@router.get('/version',
summary='Gets information about the server version',
response_model=Schemas.Version)
async def version():
return Schemas.Version(**VERSION)
@router.get('/databaseInfo',
summary='Gets information about the database',
response_model=Schemas.DatabaseInfo)
async def databaseInfo(db: Session = Depends(get_database)):
return DatabaseInfoProvider.get_database_info(db)
@router.get('/databaseCleanup',
summary='Cleans up the database by enforcing the configured retention policies',
response_model=Schemas.DatabaseCleanupInfo)
async def databaseCleanup(db: Session = Depends(get_database)):
infoBefore = DatabaseInfoProvider.get_database_info(db)
# TODO
infoAfter = DatabaseInfoProvider.get_database_info(db)
deletedMeasurements = infoBefore.number_of_measurements - infoAfter.number_of_measurements
sizeFreed = infoBefore.size_on_disk_in_mb - infoAfter.size_on_disk_in_mb
infoDifference = Schemas.DatabaseInfo(number_of_measurements=deletedMeasurements, size_on_disk_in_mb=sizeFreed)
return Schemas.DatabaseCleanupInfo(before=infoBefore, after=infoAfter, difference=infoDifference)