Use fastapi router

This commit is contained in:
Zoe Roux 2025-05-12 13:03:14 +02:00
parent c2ca1361fe
commit f8331c083a
No known key found for this signature in database
2 changed files with 15 additions and 10 deletions

View File

@ -5,16 +5,19 @@ from contextlib import asynccontextmanager
from fastapi import FastAPI
from scanner.client import KyooClient
from .database import get_db, init_pool
from scanner.fsscan import Scanner
from scanner.providers.composite import CompositeProvider
from scanner.providers.themoviedatabase import TheMovieDatabase
from scanner.requests import RequestCreator, RequestProcessor
logging.basicConfig(level=logging.INFO)
from .database import get_db, init_pool
from .routers.routes import router
logging.basicConfig(level=logging.DEBUG)
logging.getLogger("watchfiles").setLevel(logging.WARNING)
logging.getLogger("rebulk").setLevel(logging.WARNING)
@asynccontextmanager
async def lifespan(_):
async with (
@ -33,8 +36,8 @@ async def lifespan(_):
# there's no way someone else used the same id, right?
is_master = await db.fetchval("select pg_try_advisory_lock(198347)")
if is_master:
_ = await asyncio.create_task(scanner.scan(remove_deleted=True))
_ = await asyncio.create_task(scanner.monitor())
_ = asyncio.create_task(scanner.monitor())
_ = asyncio.create_task(scanner.scan(remove_deleted=True))
yield
@ -45,3 +48,4 @@ app = FastAPI(
root_path="/scanner",
lifespan=lifespan,
)
app.include_router(router)

View File

@ -1,20 +1,21 @@
from typing import Annotated
from fastapi import BackgroundTasks, Depends, Security
from fastapi import APIRouter, BackgroundTasks, Depends, Security
from scanner import app
from scanner.fsscan import Scanner
from scanner.jwt import validate_bearer
from ..fsscan import Scanner
from ..jwt import validate_bearer
router = APIRouter()
@app.put(
@router.put(
"/scan",
status_code=204,
response_description="Scan started.",
)
async def trigger_scan(
tasks: BackgroundTasks,
scanner: Annotated[Scanner, Depends],
# scanner: Annotated[Scanner, Depends],
_: Annotated[None, Security(validate_bearer, scopes=["scanner.trigger"])],
):
"""