Build 060.14 — WebSocket Trade Adapter
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# src/market_data/acquisition/adapters/dzengi/websocket_trade_adapter.py
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from src.market_data.acquisition.adapters.dzengi.mapper import (
|
||||
map_dzengi_websocket_trade_to_trade,
|
||||
)
|
||||
from src.market_data.acquisition.adapters.dzengi.parser import (
|
||||
parse_dzengi_websocket_trade,
|
||||
)
|
||||
from src.market_data.acquisition.models.trade import Trade
|
||||
from src.market_data.acquisition.validation.schema import (
|
||||
ValidatedWebSocketTradeDocument,
|
||||
)
|
||||
from src.market_data.acquisition.validation.values import (
|
||||
validate_dzengi_websocket_trade_values,
|
||||
)
|
||||
|
||||
|
||||
def adapt_websocket_trade_document(
|
||||
document: ValidatedWebSocketTradeDocument,
|
||||
) -> Trade:
|
||||
"""
|
||||
Преобразовать структурно проверенный документ Dzengi WebSocket Trade
|
||||
в каноническую immutable-модель Trade.
|
||||
|
||||
Функция последовательно выполняет parsing, value validation
|
||||
и mapping. Schema validation должна быть выполнена вызывающим слоем.
|
||||
Исключения отдельных этапов не перехватываются и не оборачиваются.
|
||||
"""
|
||||
|
||||
event = parse_dzengi_websocket_trade(document)
|
||||
|
||||
validate_dzengi_websocket_trade_values(event)
|
||||
|
||||
return map_dzengi_websocket_trade_to_trade(event)
|
||||
Reference in New Issue
Block a user