27 lines
839 B
Python
27 lines
839 B
Python
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Security
|
|
|
|
from app.config import settings
|
|
from app.services.version_service import version_service
|
|
|
|
from ..dependencies import require_api_token
|
|
from ..schemas.health import HealthCheckResponse, HealthFeatureFlags
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/health", tags=["health"], response_model=HealthCheckResponse)
|
|
async def health_check(_: object = Security(require_api_token)) -> HealthCheckResponse:
|
|
return HealthCheckResponse(
|
|
status="ok",
|
|
api_version=settings.WEB_API_VERSION,
|
|
bot_version=version_service.current_version,
|
|
features=HealthFeatureFlags(
|
|
monitoring=settings.MONITORING_INTERVAL > 0,
|
|
maintenance=True,
|
|
reporting=True,
|
|
webhooks=bool(settings.WEBHOOK_URL),
|
|
),
|
|
)
|