Files
picrinth-server/src/create_app.py

59 lines
1.6 KiB
Python

import sys
from fastapi import FastAPI
from loguru import logger
from api.accounts import accounts_router
from api.anon import anon_router
from api.auth import auth_router
from api.feeds import feeds_router
from api.general import general_router
from api.groups import groups_router
from api.memberships import memberships_router
from api.pictures import pictures_router
from api.swipes import swipes_router
from api.users import users_router
from db.internal import connect_db, disconnect_db
from settings import startup_settings
from settings.settings import settings_down, settings_up
docs_url = None
if startup_settings.swagger_enabled:
docs_url = "/api/docs"
app = FastAPI(
redoc_url=None,
docs_url=docs_url,
)
def create_app():
logger.configure(
handlers=[
{
"sink": sys.stdout,
"level": startup_settings.log_level,
"format": "<level>{level}: {message}</level>",
}
]
)
app.add_event_handler("startup", connect_db)
app.add_event_handler("startup", settings_up)
app.include_router(general_router)
app.include_router(anon_router)
app.include_router(auth_router)
app.include_router(users_router)
app.include_router(groups_router)
app.include_router(memberships_router)
app.include_router(accounts_router)
app.include_router(feeds_router)
app.include_router(swipes_router)
app.include_router(pictures_router)
app.add_event_handler("shutdown", disconnect_db)
app.add_event_handler("shutdown", settings_down)
return app