diff --git a/.gitignore b/.gitignore index 0315260..43cb24f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ .DS_Store .env /frontend/generated/ +__pycache__/ +*.py[cod] +.venv/ diff --git a/backend/app/api/v1/users.py b/backend/app/api/v1/users.py index c20ab09..610deaf 100644 --- a/backend/app/api/v1/users.py +++ b/backend/app/api/v1/users.py @@ -1,8 +1,8 @@ from typing import List from fastapi import APIRouter, HTTPException, status -from myapp.schemas.user import UserCreate, UserRead, UserUpdate -from myapp.services.user_service import UserService +from app.schemas.user import UserCreate, UserRead, UserUpdate +from app.services.user_service import UserService router = APIRouter(tags=["Users"]) _svc = UserService() # можно заменить на Depends(UserService) diff --git a/backend/app/core/dependencies.py b/backend/app/core/dependencies.py index 879ba58..90df5fb 100644 --- a/backend/app/core/dependencies.py +++ b/backend/app/core/dependencies.py @@ -26,9 +26,15 @@ def get_logger_dep(): async def lifespan_context(app): """Global startup → connect Beanie; shutdown → close.""" settings = get_settings() - mongo = AsyncIOMotorClient(settings.mongo_uri) - await init_beanie(mongo.db_name, document_models=[User]) - log.info("mongo_connected") + mongo = None + try: + mongo = AsyncIOMotorClient(settings.mongo_uri, serverSelectionTimeoutMS=2000) + await init_beanie(mongo.db_name, document_models=[User]) + log.info("mongo_connected") + except Exception as exc: # noqa: BLE001 - startup must not crash + log.warning("mongo_connect_failed", error=str(exc)) + mongo = None yield - mongo.close() - log.info("mongo_closed") + if mongo: + mongo.close() + log.info("mongo_closed") diff --git a/backend/app/main.py b/backend/app/main.py index 9f439d5..b7543f8 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -9,8 +9,8 @@ from app.api.v1 import api_v1_router from app.cron.scheduler import scheduler -logger.info("app_bootstrap", env=settings.env) settings: Settings = get_settings() # single-instance +logger.info("app_bootstrap", env=settings.env) app = FastAPI( title="My Awesome API", diff --git a/backend/pyproject.toml b/backend/pyproject.toml index f51b815..d89e938 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -2,9 +2,9 @@ name = "app" version = "0.1.0" description = "" -requires-python = ">=3.10,<4.0"  +requires-python = ">=3.10,<4.0" authors = ["Alex Poloz "] -packages = [{include = "app", from = "src"}] +packages = [{include = "app"}] [tool.poetry.dependencies] python = "^3.11"