aiteamutils 0.2.19__tar.gz → 0.2.21__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/PKG-INFO +1 -1
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/database.py +12 -5
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/dependencies.py +3 -1
- aiteamutils-0.2.21/aiteamutils/version.py +2 -0
- aiteamutils-0.2.19/aiteamutils/version.py +0 -2
- aiteamutils-0.2.19/app/auth/service.py +0 -4
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/.gitignore +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/README.md +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/__init__.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/base_model.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/base_repository.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/base_service.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/cache.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/config.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/enums.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/exceptions.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/security.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/aiteamutils/validators.py +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/pyproject.toml +0 -0
- {aiteamutils-0.2.19 → aiteamutils-0.2.21}/setup.py +0 -0
@@ -85,7 +85,7 @@ class DatabaseService:
|
|
85
85
|
pool_pre_ping=True,
|
86
86
|
poolclass=QueuePool,
|
87
87
|
)
|
88
|
-
self.
|
88
|
+
self.session_factory = sessionmaker(
|
89
89
|
bind=self.engine,
|
90
90
|
class_=AsyncSession,
|
91
91
|
expire_on_commit=False
|
@@ -93,7 +93,11 @@ class DatabaseService:
|
|
93
93
|
self.db = None
|
94
94
|
elif session:
|
95
95
|
self.engine = session.bind
|
96
|
-
self.
|
96
|
+
self.session_factory = sessionmaker(
|
97
|
+
bind=self.engine,
|
98
|
+
class_=AsyncSession,
|
99
|
+
expire_on_commit=False
|
100
|
+
)
|
97
101
|
self.db = session
|
98
102
|
else:
|
99
103
|
raise ValueError("Either db_url or session must be provided")
|
@@ -101,10 +105,10 @@ class DatabaseService:
|
|
101
105
|
@asynccontextmanager
|
102
106
|
async def get_session(self) -> AsyncGenerator[AsyncSession, None]:
|
103
107
|
"""데이터베이스 세션을 생성하고 반환하는 비동기 컨텍스트 매니저."""
|
104
|
-
if self.
|
108
|
+
if self.session_factory is None:
|
105
109
|
raise RuntimeError("Session factory not initialized")
|
106
110
|
|
107
|
-
async with self.
|
111
|
+
async with self.session_factory() as session:
|
108
112
|
try:
|
109
113
|
yield session
|
110
114
|
finally:
|
@@ -788,7 +792,10 @@ class DatabaseService:
|
|
788
792
|
CustomException: 데이터베이스 작업 중 오류 발생 시
|
789
793
|
"""
|
790
794
|
try:
|
791
|
-
|
795
|
+
if self.db is not None:
|
796
|
+
return await self.db.execute(query)
|
797
|
+
|
798
|
+
async with self.get_session() as session:
|
792
799
|
result = await session.execute(query)
|
793
800
|
return result
|
794
801
|
except Exception as e:
|
@@ -2,6 +2,7 @@ from typing import Type, Dict, Tuple, Any, Callable
|
|
2
2
|
from fastapi import Depends, status
|
3
3
|
from fastapi.security import OAuth2PasswordBearer
|
4
4
|
from jose import JWTError, jwt
|
5
|
+
from sqlalchemy.ext.asyncio import AsyncSession
|
5
6
|
|
6
7
|
from .database import DatabaseService, get_database_service
|
7
8
|
from .exceptions import CustomException, ErrorCode
|
@@ -59,7 +60,8 @@ def get_service(name: str):
|
|
59
60
|
Returns:
|
60
61
|
Callable: 서비스 인스턴스를 반환하는 의존성 함수
|
61
62
|
"""
|
62
|
-
def _get_service(
|
63
|
+
def _get_service(db: AsyncSession = Depends(get_db)):
|
64
|
+
db_service = DatabaseService(session=db)
|
63
65
|
repository_class, service_class = service_registry.get(name)
|
64
66
|
repository = repository_class(db_service)
|
65
67
|
return service_class(repository, db_service)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|