Сделаны подписки и переделаны роуты
This commit is contained in:
42
main.py
42
main.py
@@ -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 приложение работает!"}
|
||||
|
||||
Reference in New Issue
Block a user