Skip to content
Snippets Groups Projects
Commit 8563c586 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#9 - added new (dummy) route to retrieve database cleanup status + changed...

#9 - added new (dummy) route to retrieve database cleanup status + changed database cleanup trigger from GET to POST
parent e8c2aaf9
No related branches found
No related tags found
No related merge requests found
from enum import Enum
from typing import List
from pydantic import BaseModel, Field
......@@ -38,10 +39,17 @@ class DatabaseInfo(BaseModel):
}
class DatabaseCleanupStatus(str, Enum):
UNDEFINED = 'UNDEFINED'
RUNNING = 'RUNNING'
FINISHED = 'FINISHED'
class DatabaseCleanupInfo(BaseModel):
before: DatabaseInfo
after: DatabaseInfo
difference: DatabaseInfo
status: DatabaseCleanupStatus
before: DatabaseInfo = None
after: DatabaseInfo = None
difference: DatabaseInfo = None
class MinMax(BaseModel):
......
......@@ -2,6 +2,7 @@ from datetime import datetime
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from starlette.background import BackgroundTasks
from Settings import VERSION, SETTINGS
from logic.Dependencies import get_database, check_api_key
......@@ -28,9 +29,9 @@ 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 for each sensor',
response_model=Schemas.DatabaseCleanupInfo,
@router.post('/databaseCleanup',
summary='Initiates a database cleanup by enforcing the configured retention policies for each sensor',
response_model=Schemas.Status,
dependencies=[Depends(check_api_key)])
async def databaseCleanup(db: Session = Depends(get_database)):
infoBefore = DatabaseInfoProvider.get_database_info(db)
......@@ -53,3 +54,9 @@ async def databaseCleanup(db: Session = Depends(get_database)):
return Schemas.DatabaseCleanupInfo(before=infoBefore, after=infoAfter, difference=infoDifference)
@router.get('/databaseCleanup',
summary='Provides the status of the current database cleanup',
response_model=Schemas.DatabaseCleanupInfo)
async def databaseCleanup():
return Schemas.DatabaseCleanupInfo(status=Schemas.DatabaseCleanupStatus.UNDEFINED)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment