rebuild(stage-5): establish market data gateway and charts
This commit is contained in:
@@ -3,6 +3,10 @@ from __future__ import annotations
|
||||
from dataclasses import dataclass
|
||||
|
||||
from backend.bootstrap.settings import Settings
|
||||
from backend.data.gateway import DataGateway
|
||||
from backend.data.policy import DataSourcePolicy
|
||||
from backend.data.providers import EastmoneyProvider, IfindProvider, TushareProvider
|
||||
from backend.data.repository import MarketRepository
|
||||
from backend.database.connection import Database
|
||||
from backend.database.repositories.status import DatabaseStatusRepository
|
||||
from backend.features.accounts.credentials import SystemCredentialService
|
||||
@@ -12,6 +16,7 @@ from backend.features.accounts.service import (
|
||||
AccountService,
|
||||
MembershipService,
|
||||
)
|
||||
from backend.features.market import MarketService
|
||||
from backend.security import PasswordHasher, load_or_create_cipher
|
||||
|
||||
|
||||
@@ -24,6 +29,7 @@ class ApplicationContainer:
|
||||
memberships: MembershipService
|
||||
system_credentials: SystemCredentialService
|
||||
model_pool: ModelPoolService
|
||||
market: MarketService
|
||||
|
||||
|
||||
def build_container(settings: Settings) -> ApplicationContainer:
|
||||
@@ -32,12 +38,27 @@ def build_container(settings: Settings) -> ApplicationContainer:
|
||||
credential_repository = SystemCredentialRepository()
|
||||
model_pool_repository = ModelPoolRepository()
|
||||
cipher = load_or_create_cipher(settings)
|
||||
credentials = SystemCredentialService(database, credential_repository, cipher)
|
||||
gateway = DataGateway(
|
||||
database,
|
||||
MarketRepository(),
|
||||
(
|
||||
TushareProvider(lambda: credentials.get("tushare_token")),
|
||||
IfindProvider(
|
||||
lambda: credentials.get("ifind_refresh_token"),
|
||||
lambda: credentials.get("ifind_access_token"),
|
||||
),
|
||||
EastmoneyProvider(),
|
||||
),
|
||||
DataSourcePolicy(),
|
||||
)
|
||||
return ApplicationContainer(
|
||||
settings=settings,
|
||||
database=database,
|
||||
database_status=DatabaseStatusRepository(database),
|
||||
accounts=AccountService(database, account_repository, PasswordHasher(), cipher),
|
||||
memberships=MembershipService(database, account_repository),
|
||||
system_credentials=SystemCredentialService(database, credential_repository, cipher),
|
||||
system_credentials=credentials,
|
||||
model_pool=ModelPoolService(database, model_pool_repository, cipher),
|
||||
market=MarketService(gateway),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user