51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
from fastapi import FastAPI
|
||
from instance.configdb import init_postgresql, init_mongodb, close_connections
|
||
from app.routes import user_router, subscription_router
|
||
from app.services.db_manager import DatabaseManager
|
||
from instance.configdb import get_postgres_session
|
||
import logging
|
||
|
||
logging.basicConfig(level=logging.INFO)
|
||
logger = logging.getLogger(__name__)
|
||
|
||
app = FastAPI()
|
||
|
||
database_manager = DatabaseManager(session_generator=get_postgres_session)
|
||
|
||
@app.on_event("startup")
|
||
async def startup():
|
||
"""
|
||
Инициализация подключения к базам данных.
|
||
"""
|
||
try:
|
||
logger.info("Инициализация PostgreSQL...")
|
||
await init_postgresql()
|
||
logger.info("PostgreSQL успешно инициализирован.")
|
||
|
||
logger.info("Инициализация MongoDB...")
|
||
await init_mongodb()
|
||
logger.info("MongoDB успешно инициализирован.")
|
||
except Exception as e:
|
||
logger.error(f"Ошибка при инициализации баз данных: {e}")
|
||
raise RuntimeError("Не удалось инициализировать базы данных")
|
||
|
||
@app.on_event("shutdown")
|
||
async def shutdown():
|
||
"""
|
||
Закрытие соединений с базами данных.
|
||
"""
|
||
try:
|
||
logger.info("Закрытие соединений с базами данных...")
|
||
await close_connections()
|
||
logger.info("Соединения с базами данных успешно закрыты.")
|
||
except Exception as e:
|
||
logger.error(f"Ошибка при закрытии соединений: {e}")
|
||
|
||
app.include_router(user_router, prefix="/api")
|
||
#app.include_router(payment_router, prefix="/api")
|
||
app.include_router(subscription_router, prefix="/api")
|
||
|
||
@app.get("/")
|
||
def read_root():
|
||
return {"message": "FastAPI приложение работает!"}
|