48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
|
|
import logging
|
||
|
|
|
||
|
|
from fastapi import FastAPI
|
||
|
|
from fastapi.middleware.cors import CORSMiddleware
|
||
|
|
|
||
|
|
from .api.auth_routes import get_auth_router, build_token_verifier, get_current_user_dependency
|
||
|
|
from .api.routes import get_router
|
||
|
|
from .services.config_repo import ConfigRepository
|
||
|
|
from .services.match_store import MatchStore
|
||
|
|
from .services.pattern_service import PatternService
|
||
|
|
from .services.scanner_manager import ScannerManager
|
||
|
|
from .services.user_service import UserService
|
||
|
|
|
||
|
|
|
||
|
|
logging.basicConfig(
|
||
|
|
level=logging.INFO,
|
||
|
|
format="%(asctime)s - %(levelname)s - %(message)s",
|
||
|
|
)
|
||
|
|
|
||
|
|
repo = ConfigRepository()
|
||
|
|
match_store = MatchStore()
|
||
|
|
pattern_service = PatternService(repo)
|
||
|
|
scanner_manager = ScannerManager(repo, pattern_service, match_store)
|
||
|
|
user_service = UserService()
|
||
|
|
token_verifier = build_token_verifier(user_service)
|
||
|
|
require_user = get_current_user_dependency(token_verifier)
|
||
|
|
|
||
|
|
app = FastAPI(title="Streaming Overseer API", version="1.0.0")
|
||
|
|
|
||
|
|
app.add_middleware(
|
||
|
|
CORSMiddleware,
|
||
|
|
allow_origins=["*"],
|
||
|
|
allow_credentials=True,
|
||
|
|
allow_methods=["*"],
|
||
|
|
allow_headers=["*"],
|
||
|
|
)
|
||
|
|
|
||
|
|
app.include_router(get_auth_router(user_service), prefix="/api")
|
||
|
|
app.include_router(
|
||
|
|
get_router(repo, match_store, scanner_manager, require_user, token_verifier),
|
||
|
|
prefix="/api",
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
@app.on_event("shutdown")
|
||
|
|
async def shutdown_event():
|
||
|
|
await scanner_manager.stop()
|