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.
28 lines
1001 B
Python
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()
|