Сделаны подписки и переделаны роуты

This commit is contained in:
Disledg
2024-12-28 21:31:07 +03:00
parent 63c0e780b4
commit 3544562b96
21 changed files with 547 additions and 202 deletions

42
main.py
View File

@@ -1,42 +1,50 @@
from fastapi import FastAPI
from instance.configdb import init_postgresql, init_mongodb, close_connections
from app.routes import user_router, payment_router, subscription_router
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__)
# Создаём приложение FastAPI
app = FastAPI()
# Инициализация менеджера базы данных
database_manager = DatabaseManager(session_generator=get_postgres_session)
# Событие при старте приложения
@app.on_event("startup")
async def startup():
"""
Инициализация подключения к базам данных.
"""
await init_postgresql()
await init_mongodb()
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():
"""
Закрытие соединений с базами данных.
"""
await close_connections()
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(payment_router, prefix="/api")
app.include_router(subscription_router, prefix="/api")
# Пример корневого маршрута
@app.get("/")
async def root():
"""
Пример маршрута, использующего DatabaseManager.
"""
user = await database_manager.create_user(telegram_id=12345)
return {"message": "User created", "user": {"id": user.id, "telegram_id": user.telegram_id}}
def read_root():
return {"message": "FastAPI приложение работает!"}