37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import logging
|
|
logger = logging.getLogger(__name__)
|
|
from fastapi import FastAPI
|
|
from fastapi.security import OAuth2PasswordBearer
|
|
from contextlib import asynccontextmanager
|
|
from dotenv import load_dotenv
|
|
|
|
from .controllers import userManager, cardManager, groupManager, aaManager, doorManager
|
|
from .services.database import create_db_and_tables, get_db_session
|
|
from .services.auth import token_router, create_first_user
|
|
from app.services.scanner import BackgroundScanner
|
|
|
|
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
|
scanner = BackgroundScanner(db=get_db_session())
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
load_dotenv()
|
|
create_db_and_tables()
|
|
create_first_user(db=get_db_session())
|
|
logger.info("Database created and tables initialized.")
|
|
scanner.start()
|
|
yield
|
|
#scanner.stop()
|
|
|
|
app = FastAPI(lifespan=lifespan)
|
|
|
|
|
|
|
|
app.include_router(token_router)
|
|
app.include_router(userManager.user_router)
|
|
app.include_router(groupManager.group_router)
|
|
app.include_router(cardManager.card_router)
|
|
app.include_router(aaManager.aa_router)
|
|
app.include_router(doorManager.door_router) |