43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
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.services.db_manager import DatabaseManager
|
||
from instance.configdb import get_postgres_session
|
||
|
||
# Создаём приложение FastAPI
|
||
app = FastAPI()
|
||
|
||
# Инициализация менеджера базы данных
|
||
database_manager = DatabaseManager(session_generator=get_postgres_session)
|
||
|
||
# Событие при старте приложения
|
||
@app.on_event("startup")
|
||
async def startup():
|
||
"""
|
||
Инициализация подключения к базам данных.
|
||
"""
|
||
await init_postgresql()
|
||
await init_mongodb()
|
||
|
||
# Событие при завершении работы приложения
|
||
@app.on_event("shutdown")
|
||
async def shutdown():
|
||
"""
|
||
Закрытие соединений с базами данных.
|
||
"""
|
||
await close_connections()
|
||
|
||
# Подключение маршрутов
|
||
app.include_router(user_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}}
|