a69a26852e
* Cut down unnecessary logging * fix format etc * fix checks * fix tests
26 lines
794 B
Python
26 lines
794 B
Python
from repositories.protocols import LidarrRepositoryProtocol
|
|
from api.v1.schemas.common import StatusReport, ServiceStatus
|
|
|
|
|
|
class StatusService:
|
|
def __init__(self, lidarr_repo: LidarrRepositoryProtocol):
|
|
self._lidarr_repo = lidarr_repo
|
|
|
|
async def get_status(self) -> StatusReport:
|
|
lidarr_status = await self._lidarr_repo.get_status()
|
|
|
|
services = {
|
|
"lidarr": lidarr_status
|
|
}
|
|
|
|
overall_status = "ok"
|
|
if any(s.status == "error" for s in services.values()):
|
|
overall_status = "error"
|
|
elif any(s.status != "ok" for s in services.values()):
|
|
overall_status = "degraded"
|
|
|
|
return StatusReport(
|
|
status=overall_status,
|
|
services=services
|
|
)
|