59 lines
1.6 KiB
Python
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
|