2026-04-03 08:45:19 +03:00
|
|
|
from fastapi import APIRouter, Request
|
|
|
|
|
from fastapi.responses import HTMLResponse
|
|
|
|
|
|
|
|
|
|
from onguard24.domain.events import EventBus
|
|
|
|
|
from onguard24.modules.ui_support import wrap_module_html_page
|
2026-04-03 08:30:56 +03:00
|
|
|
|
|
|
|
|
router = APIRouter(tags=["module-statusboard"])
|
|
|
|
|
|
2026-04-03 08:45:19 +03:00
|
|
|
ui_router = APIRouter(tags=["web-statusboard"], include_in_schema=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def register_events(_bus: EventBus) -> None:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def render_home_fragment(request: Request) -> str:
|
|
|
|
|
del request
|
|
|
|
|
return (
|
|
|
|
|
'<div class="module-fragment">'
|
|
|
|
|
"<p>Сводка по сервисам (светофор) — по данным алертов.</p>"
|
|
|
|
|
"</div>"
|
|
|
|
|
)
|
|
|
|
|
|
2026-04-03 08:30:56 +03:00
|
|
|
|
|
|
|
|
@router.get("/")
|
|
|
|
|
async def statusboard_root():
|
|
|
|
|
return {
|
|
|
|
|
"module": "statusboard",
|
|
|
|
|
"status": "stub",
|
|
|
|
|
"note": "светофор по сервисам — агрегация по алертам",
|
|
|
|
|
"demo": [],
|
|
|
|
|
}
|
2026-04-03 08:45:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@ui_router.get("/", response_class=HTMLResponse)
|
|
|
|
|
async def statusboard_ui_home(request: Request):
|
|
|
|
|
del request
|
|
|
|
|
inner = """<h1>Светофор</h1>
|
|
|
|
|
<p>Агрегация статусов сервисов по алертам.</p>"""
|
|
|
|
|
return HTMLResponse(
|
|
|
|
|
wrap_module_html_page(
|
|
|
|
|
document_title="Светофор — onGuard24",
|
|
|
|
|
current_slug="statusboard",
|
|
|
|
|
main_inner_html=inner,
|
|
|
|
|
)
|
|
|
|
|
)
|