You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
orquestrador/admin_app/api/routes/system.py

28 lines
1001 B
Python

from fastapi import APIRouter, Depends
from admin_app.api.dependencies import get_settings
from admin_app.api.schemas import AdminHealthResponse, AdminRootResponse, AdminSystemInfoResponse
from admin_app.core.settings import AdminSettings
from admin_app.services.system_service import SystemService
router = APIRouter(tags=["system"])
def _build_service(settings: AdminSettings) -> SystemService:
return SystemService(settings=settings)
@router.get("/", response_model=AdminRootResponse)
def root(settings: AdminSettings = Depends(get_settings)):
return _build_service(settings).build_root_payload()
@router.get("/health", response_model=AdminHealthResponse)
def health_check(settings: AdminSettings = Depends(get_settings)):
return _build_service(settings).build_health_payload()
@router.get("/system/info", response_model=AdminSystemInfoResponse)
def system_info(settings: AdminSettings = Depends(get_settings)):
return _build_service(settings).build_system_info_payload()