Skip to content
Snippets Groups Projects
Select Git revision
  • 453d1c55960bd3d52db7f2c3b978e3e7772beb74
  • master default
  • v2.21.0
  • v2.20.1
  • v2.20.0
  • v2.19.0
  • v2.18.1
  • v2.18.0
  • v2.17.0
  • v2.16.0
  • v2.15.0
  • v2.14.0
  • v2.13.1
  • v2.13.0
  • v2.12.0
  • v2.11.0
  • v2.10.0
  • v2.9.0
  • v2.8.0
  • v2.7.0
  • v2.6.0
  • v2.5.0
22 results

Crud.py

Blame
  • 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)