Feature/add fallback in get quotes of eod historical data service (#3776)
* Add fallback to previousClose in getQuotes() * Update changelog
This commit is contained in:
parent
520c176cd6
commit
4865aa1665
@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
- Improved the usability of the toggle component
|
- Improved the usability of the toggle component
|
||||||
- Switched to the accounts endpoint in the holding detail dialog
|
- Switched to the accounts endpoint in the holding detail dialog
|
||||||
|
- Added a fallback in the get quotes functionality of the _EOD Historical Data_ service
|
||||||
|
|
||||||
## 2.107.1 - 2024-09-12
|
## 2.107.1 - 2024-09-12
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ import {
|
|||||||
} from '@ghostfolio/common/config';
|
} from '@ghostfolio/common/config';
|
||||||
import { DATE_FORMAT, isCurrency } from '@ghostfolio/common/helper';
|
import { DATE_FORMAT, isCurrency } from '@ghostfolio/common/helper';
|
||||||
import { DataProviderInfo } from '@ghostfolio/common/interfaces';
|
import { DataProviderInfo } from '@ghostfolio/common/interfaces';
|
||||||
|
import { MarketState } from '@ghostfolio/common/types';
|
||||||
|
|
||||||
import { Injectable, Logger } from '@nestjs/common';
|
import { Injectable, Logger } from '@nestjs/common';
|
||||||
import {
|
import {
|
||||||
@ -229,7 +230,12 @@ export class EodHistoricalDataService implements DataProviderInterface {
|
|||||||
}
|
}
|
||||||
).json<any>();
|
).json<any>();
|
||||||
|
|
||||||
const quotes =
|
const quotes: {
|
||||||
|
close: number;
|
||||||
|
code: string;
|
||||||
|
previousClose: number;
|
||||||
|
timestamp: number;
|
||||||
|
}[] =
|
||||||
eodHistoricalDataSymbols.length === 1
|
eodHistoricalDataSymbols.length === 1
|
||||||
? [realTimeResponse]
|
? [realTimeResponse]
|
||||||
: realTimeResponse;
|
: realTimeResponse;
|
||||||
@ -243,7 +249,7 @@ export class EodHistoricalDataService implements DataProviderInterface {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const { close, code, timestamp } of quotes) {
|
for (const { close, code, previousClose, timestamp } of quotes) {
|
||||||
let currency: string;
|
let currency: string;
|
||||||
|
|
||||||
if (this.isForex(code)) {
|
if (this.isForex(code)) {
|
||||||
@ -267,15 +273,21 @@ export class EodHistoricalDataService implements DataProviderInterface {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isNumber(close)) {
|
if (isNumber(close) || isNumber(previousClose)) {
|
||||||
|
const marketPrice: number = isNumber(close) ? close : previousClose;
|
||||||
|
let marketState: MarketState = 'closed';
|
||||||
|
|
||||||
|
if (this.isForex(code) || isToday(new Date(timestamp * 1000))) {
|
||||||
|
marketState = 'open';
|
||||||
|
} else if (!isNumber(close)) {
|
||||||
|
marketState = 'delayed';
|
||||||
|
}
|
||||||
|
|
||||||
response[this.convertFromEodSymbol(code)] = {
|
response[this.convertFromEodSymbol(code)] = {
|
||||||
currency,
|
currency,
|
||||||
dataSource: this.getName(),
|
marketPrice,
|
||||||
marketPrice: close,
|
marketState,
|
||||||
marketState:
|
dataSource: this.getName()
|
||||||
this.isForex(code) || isToday(new Date(timestamp * 1000))
|
|
||||||
? 'open'
|
|
||||||
: 'closed'
|
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
Logger.error(
|
Logger.error(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user