src/models/__init__.py (37 lines of code) (raw):
from modular_sdk.connections.mongodb_connection import MongoDBConnection
from modular_sdk.models.pynamodb_extension.base_model import (
ABCMongoDBHandlerMixin,
RawBaseGSI,
RawBaseModel,
)
from modular_sdk.models.pynamodb_extension.base_safe_update_model import (
BaseSafeUpdateModel as ModularSafeUpdateModel,
)
from modular_sdk.models.pynamodb_extension.pynamodb_to_pymongo_adapter import (
PynamoDBToPyMongoAdapter,
)
from services import SP
ADAPTER = None
MONGO_CLIENT = None
_env = SP.environment_service
if _env.is_docker():
ADAPTER = PynamoDBToPyMongoAdapter(
mongodb_connection=MongoDBConnection(
mongo_uri=_env.mongo_uri(),
default_db_name=_env.mongo_database()
)
)
MONGO_CLIENT = ADAPTER.mongodb.client
class ModularServiceMongoDBHandlerMixin(ABCMongoDBHandlerMixin):
@classmethod
def mongodb_handler(cls):
if not cls._mongodb:
cls._mongodb = ADAPTER
return cls._mongodb
class BaseModel(ModularServiceMongoDBHandlerMixin, RawBaseModel):
pass
class BaseGSI(ModularServiceMongoDBHandlerMixin, RawBaseGSI):
pass
class BaseSafeUpdateModel(ModularServiceMongoDBHandlerMixin,
ModularSafeUpdateModel):
pass