shrimpy-node
Version:
Client for the Shrimpy API
34 lines (31 loc) • 1.67 kB
text/typescript
import { IDtoConverter } from "../interfaces";
import { ITickerDto } from "../dtos";
import { ITicker } from "../models";
import { NullableDateDtoConverter } from "./nullable-date-dto-converter";
import { NullableDecimalDtoConverter } from "./nullable-decimal-dto-converter";
export class TickerDtoConverter implements IDtoConverter<ITickerDto, ITicker> {
private _nullableDecimalDtoConverter = new NullableDecimalDtoConverter();
private _nullableDateDtoConverter = new NullableDateDtoConverter();
public convertFromDto(dto: ITickerDto): ITicker {
const result: ITicker = {
lastUpdated: this._nullableDateDtoConverter.convertFromDto(dto.lastUpdated),
name: dto.name,
percentChange24hUsd: this._nullableDecimalDtoConverter.convertFromDto(dto.percentChange24hUsd),
priceBtc: this._nullableDecimalDtoConverter.convertFromDto(dto.priceBtc),
priceUsd: this._nullableDecimalDtoConverter.convertFromDto(dto.priceUsd),
symbol: dto.symbol
};
return result;
}
public convertToDto(model: ITicker): ITickerDto {
const result: ITickerDto = {
lastUpdated: this._nullableDateDtoConverter.convertToDto(model.lastUpdated),
name: model.name,
percentChange24hUsd: this._nullableDecimalDtoConverter.convertToDto(model.percentChange24hUsd),
priceBtc: this._nullableDecimalDtoConverter.convertToDto(model.priceBtc),
priceUsd: this._nullableDecimalDtoConverter.convertToDto(model.priceUsd),
symbol: model.symbol
};
return result;
}
}