from __future__ import annotations from collections.abc import Awaitable, Callable from typing import Any from quart import Quart from repub.web.admin.actions import register_admin_actions from repub.web.admin.pages.dashboard import register_dashboard_routes from repub.web.admin.pages.logs import register_log_routes from repub.web.admin.pages.runs import register_runs_routes from repub.web.admin.pages.settings import register_settings_routes from repub.web.admin.pages.sources import register_source_routes RouteGuard = Callable[[Callable[..., Awaitable[Any]]], Callable[..., Awaitable[Any]]] def register_admin_routes(app: Quart, *, admin_required: RouteGuard) -> None: register_dashboard_routes(app, admin_required=admin_required) register_source_routes(app, admin_required=admin_required) register_runs_routes(app, admin_required=admin_required) register_settings_routes(app, admin_required=admin_required) register_log_routes(app, admin_required=admin_required) register_admin_actions(app, admin_required=admin_required)