Refactor routers to use explicit FastAPI app dependencies

This commit is contained in:
2026-04-07 20:27:06 +02:00
parent 30e0dd71c9
commit ed3aa61c35
5 changed files with 29 additions and 27 deletions

View File

@@ -22,17 +22,14 @@ registered *before* the ``/{id}`` routes so FastAPI resolves them correctly.
from __future__ import annotations
from typing import TYPE_CHECKING, Annotated
from typing import Annotated
import aiosqlite
if TYPE_CHECKING:
import aiohttp
from fastapi import APIRouter, Depends, HTTPException, Query, Request, status
from fastapi import APIRouter, Depends, HTTPException, Query, status
from app.dependencies import (
AppDep,
AuthDep,
DbDep,
Fail2BanSocketDep,
HttpSessionDep,
SchedulerDep,
@@ -137,7 +134,6 @@ async def run_import_now(
:class:`~app.models.blocklist.ImportRunResult` with per-source
results and aggregated counters.
"""
from app.services import jail_service
return await blocklist_service.import_all(
db,
@@ -189,13 +185,13 @@ async def update_schedule(
db: DbDep,
_auth: AuthDep,
scheduler: SchedulerDep,
request: Request,
app: AppDep,
) -> ScheduleInfo:
"""Persist a new schedule configuration and reschedule the import job.
Args:
payload: New :class:`~app.models.blocklist.ScheduleConfig`.
request: Incoming request (used to access the scheduler).
app: FastAPI application instance used to reschedule the import job.
db: Application database connection (injected).
_auth: Validated session — enforces authentication.
@@ -204,7 +200,7 @@ async def update_schedule(
"""
await blocklist_service.set_schedule(db, payload)
# Reschedule the background job immediately.
blocklist_import_task.reschedule(request.app)
blocklist_import_task.reschedule(app)
job = scheduler.get_job(blocklist_import_task.JOB_ID)
next_run_at: str | None = None