UNPKG

shrimpy-node

Version:
59 lines (46 loc) 2.32 kB
import { IDtoConverter } from "../interfaces"; import { IHistoricalTradeDto } from "../dtos"; import { IHistoricalTrade } from "../models"; import { DateDtoConverter } from "./date-dto-converter"; import { DecimalDtoConverter } from "./decimal-dto-converter"; export class TakerSideDtoConverter implements IDtoConverter<string, "buyer" | "seller" | "unknown"> { public convertFromDto(dto: string): "buyer" | "seller" | "unknown" { if (dto == "buyer") { return "buyer"; } else if(dto == "seller") { return "seller"; } return "unknown"; } public convertToDto(model: "buyer" | "seller" | "unknown"): string { return model.toString(); } } export class HistoricalTradesDtoConverter implements IDtoConverter<IHistoricalTradeDto[], IHistoricalTrade[]> { private _dateDtoConverter = new DateDtoConverter(); private _decimalDtoConverter = new DecimalDtoConverter(); private _takerSideDtoConverter = new TakerSideDtoConverter(); public convertFromDto(dto: IHistoricalTradeDto[]): IHistoricalTrade[] { return dto.map((historicalTradeDto) => { const historicalTrade: IHistoricalTrade = { time: this._dateDtoConverter.convertFromDto(historicalTradeDto.time), price: this._decimalDtoConverter.convertFromDto(historicalTradeDto.price), size: this._decimalDtoConverter.convertFromDto(historicalTradeDto.size), takerSide: this._takerSideDtoConverter.convertFromDto(historicalTradeDto.takerSide) } return historicalTrade; }); } public convertToDto(model: IHistoricalTrade[]): IHistoricalTradeDto[] { return model.map((historicalTrade) => { const historicalTradeDto: IHistoricalTradeDto = { time: this._dateDtoConverter.convertToDto(historicalTrade.time), price: this._decimalDtoConverter.convertToDto(historicalTrade.price), size: this._decimalDtoConverter.convertToDto(historicalTrade.size), takerSide: this._takerSideDtoConverter.convertToDto(historicalTrade.takerSide) } return historicalTradeDto; }); } }