Refactor router dependency wiring to explicit app state providers
This commit is contained in:
@@ -16,6 +16,8 @@ from fastapi import Depends, HTTPException, Request, status
|
||||
|
||||
from app.config import Settings
|
||||
from app.models.auth import Session
|
||||
from app.models.config import PendingRecovery
|
||||
from app.models.server import ServerStatus
|
||||
from app.utils.time_utils import utc_now
|
||||
|
||||
import aiohttp
|
||||
@@ -171,6 +173,15 @@ async def get_fail2ban_start_command(settings: Settings = Depends(get_settings))
|
||||
"""Provide the configured fail2ban start command."""
|
||||
return settings.fail2ban_start_command
|
||||
|
||||
async def get_server_status(request: Request) -> ServerStatus:
|
||||
"""Return the cached fail2ban server status snapshot from app state."""
|
||||
state = cast("AppState", request.app.state)
|
||||
return getattr(state, "server_status", ServerStatus(online=False))
|
||||
|
||||
async def get_pending_recovery(request: Request) -> PendingRecovery | None:
|
||||
"""Return the current pending recovery record from app state."""
|
||||
state = cast("AppState", request.app.state)
|
||||
return getattr(state, "pending_recovery", None)
|
||||
|
||||
async def require_auth(
|
||||
request: Request,
|
||||
@@ -242,4 +253,6 @@ SchedulerDep = Annotated[AsyncIOScheduler, Depends(get_scheduler)]
|
||||
Fail2BanSocketDep = Annotated[str, Depends(get_fail2ban_socket)]
|
||||
Fail2BanConfigDirDep = Annotated[str, Depends(get_fail2ban_config_dir)]
|
||||
Fail2BanStartCommandDep = Annotated[str, Depends(get_fail2ban_start_command)]
|
||||
ServerStatusDep = Annotated[ServerStatus, Depends(get_server_status)]
|
||||
PendingRecoveryDep = Annotated[PendingRecovery | None, Depends(get_pending_recovery)]
|
||||
AuthDep = Annotated[Session, Depends(require_auth)]
|
||||
|
||||
Reference in New Issue
Block a user