/
ArchOracle
/
trading
Обзор
Документация
Войти
/
ArchOracle
/
trading
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/bootstrap/container.py
116 строк
4 KB
ArchOracle
Сервис получения дто акции по figi
04 май 2026, 16:25
04 май 2026, 16:25
e09d047
Код
Авторство
О чём код?
from src.app.adapter.outbound.mapper.CandleMapper import CandleMapper from src.app.adapter.outbound.mapper.ShareMapper import ShareMapper from src.app.application.use_case.GetShareDetailsUseCase import GetShareDetailsUseCase from src.app.application.use_case.GetShareDtoUseCase import GetShareDtoUseCase from src.app.application.use_case.GetSharesUseCase import GetSharesUseCase from src.app.application.use_case.LoadCandlesForShareUseCase import LoadCandlesForShareUseCase from src.app.application.use_case.SyncSharesFromBrokerUseCase import SyncSharesFromBrokerUseCase from src.app.application.use_case.SyncSingleShareUseCase import SyncSingleShareUseCase from src.app.bootstrap.settings import TinkoffSettings from src.app.infrastructure.brokers.tinkoff.client import TinkoffHttpClient from src.app.infrastructure.brokers.tinkoff.api import TinkoffApi from src.app.infrastructure.brokers.tinkoff.mapper import TinkoffMapper from src.app.infrastructure.brokers.tinkoff.adapter import TinkoffBrokerAdapter from src.app.application.use_case.GetSharesWithCandlesUseCase import GetSharesWithCandlesUseCase from src.app.adapter.outbound.repository.SqlAlchemyShareRepository import SqlAlchemyShareRepository from src.app.adapter.outbound.repository.SqlAlchemyCandleRepository import SqlAlchemyCandleRepository def build_get_shares_with_candles_use_case(session): settings = TinkoffSettings.load() http = TinkoffHttpClient( token=settings.sandbox_token, base_url=settings.base_url, ) api = TinkoffApi(http=http) mapper = TinkoffMapper() broker = TinkoffBrokerAdapter( api=api, mapper=mapper, ) share_repo = SqlAlchemyShareRepository(session, ShareMapper()) candle_repo = SqlAlchemyCandleRepository(session, CandleMapper()) return GetSharesWithCandlesUseCase( broker=broker, share_repo=share_repo, candle_repo=candle_repo, ) def build_get_shares_use_case(session): settings = TinkoffSettings.load() return GetSharesUseCase( share_repo=SqlAlchemyShareRepository(session, ShareMapper()), candle_repo=SqlAlchemyCandleRepository(session, CandleMapper()), ) def build_sync_shares_use_case(session): settings = TinkoffSettings.load() return SyncSharesFromBrokerUseCase( broker=TinkoffBrokerAdapter( api=TinkoffApi( http=TinkoffHttpClient( token=settings.trading_token, base_url=settings.base_url, ) ), mapper=TinkoffMapper(), ), share_repo=SqlAlchemyShareRepository(session, ShareMapper()), ) def build_get_share_details_use_case(session): return GetShareDetailsUseCase( share_repo=SqlAlchemyShareRepository(session, ShareMapper()), candle_repo=SqlAlchemyCandleRepository(session, CandleMapper()), ) def build_sync_single_share_use_case(session): settings = TinkoffSettings.load() return SyncSingleShareUseCase( broker=TinkoffBrokerAdapter( api=TinkoffApi( http=TinkoffHttpClient( token=settings.trading_token, base_url=settings.base_url, ) ), mapper=TinkoffMapper(), ), share_repo=SqlAlchemyShareRepository(session, ShareMapper()), ) def build_load_candles_use_case(session): settings = TinkoffSettings.load() http = TinkoffHttpClient( token=settings.sandbox_token, base_url=settings.base_url, ) api = TinkoffApi(http=http) mapper = TinkoffMapper() broker = TinkoffBrokerAdapter(api=api, mapper=mapper) candle_repo = SqlAlchemyCandleRepository(session, CandleMapper()) return LoadCandlesForShareUseCase( broker=broker, candle_repo=candle_repo, ) def build_get_share_dto_use_case(session): return GetShareDtoUseCase( share_repo=SqlAlchemyShareRepository(session, ShareMapper()), candle_repo=SqlAlchemyCandleRepository(session, CandleMapper()), )