50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from dependency_injector import containers, providers
|
|
from utils.database import get_session
|
|
from utils.crypto import Crypto
|
|
from member.infra.repository.member_repo import MemberRepository
|
|
from member.application.member_service import MemberService
|
|
from analysis.application.analysis_service import AnalysisService
|
|
from analysis.infra.repository.analysis_repo import AnalysisRepository
|
|
from analysis.application.websocket_manager import WebSocketManager
|
|
from ulid import ULID
|
|
|
|
class Container(containers.DeclarativeContainer):
|
|
wiring_config = containers.WiringConfiguration(
|
|
packages=["member", "analysis"]
|
|
)
|
|
|
|
session = providers.Resource(get_session)
|
|
crypto = providers.Factory(Crypto)
|
|
ulid = providers.Factory(ULID)
|
|
|
|
member_repo = providers.Factory(
|
|
MemberRepository,
|
|
session=session
|
|
)
|
|
|
|
member_service = providers.Factory(
|
|
MemberService,
|
|
member_repo=member_repo,
|
|
crypto=crypto,
|
|
session=session,
|
|
ulid=ulid
|
|
)
|
|
|
|
analysis_repo = providers.Factory(
|
|
AnalysisRepository,
|
|
session=session
|
|
)
|
|
|
|
websocket_manager = providers.Singleton(
|
|
WebSocketManager
|
|
)
|
|
|
|
analysis_service = providers.Factory(
|
|
AnalysisService,
|
|
analysis_repo=analysis_repo,
|
|
session=session,
|
|
ulid=ulid,
|
|
websocket_manager=websocket_manager
|
|
)
|
|
|