|
|
|
|
@ -24,6 +24,7 @@ import {
|
|
|
|
|
import { Injectable, Logger } from '@nestjs/common';
|
|
|
|
|
import { DataSource, SymbolProfile } from '@prisma/client';
|
|
|
|
|
import { addDays, format, isSameDay } from 'date-fns';
|
|
|
|
|
import { uniqBy } from 'lodash';
|
|
|
|
|
import YahooFinance from 'yahoo-finance2';
|
|
|
|
|
import { ChartResultArray } from 'yahoo-finance2/esm/src/modules/chart';
|
|
|
|
|
import {
|
|
|
|
|
@ -290,7 +291,9 @@ export class YahooFinanceService implements DataProviderInterface {
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
marketData = await this.yahooFinance.quote(
|
|
|
|
|
quotes.map(({ symbol }) => {
|
|
|
|
|
uniqBy(quotes, ({ symbol }) => {
|
|
|
|
|
return symbol;
|
|
|
|
|
}).map(({ symbol }) => {
|
|
|
|
|
return symbol;
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
@ -300,35 +303,35 @@ export class YahooFinanceService implements DataProviderInterface {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (const marketDataItem of marketData) {
|
|
|
|
|
const quote = quotes.find((currentQuote) => {
|
|
|
|
|
return currentQuote.symbol === marketDataItem.symbol;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const symbol =
|
|
|
|
|
this.yahooFinanceDataEnhancerService.convertFromYahooFinanceSymbol(
|
|
|
|
|
marketDataItem.symbol
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
for (const {
|
|
|
|
|
currency,
|
|
|
|
|
longName,
|
|
|
|
|
quoteType,
|
|
|
|
|
shortName,
|
|
|
|
|
symbol
|
|
|
|
|
} of marketData) {
|
|
|
|
|
const { assetClass, assetSubClass } =
|
|
|
|
|
this.yahooFinanceDataEnhancerService.parseAssetClass({
|
|
|
|
|
quoteType: quote.quoteType,
|
|
|
|
|
shortName: quote.shortname
|
|
|
|
|
quoteType,
|
|
|
|
|
shortName
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
items.push({
|
|
|
|
|
assetClass,
|
|
|
|
|
assetSubClass,
|
|
|
|
|
symbol,
|
|
|
|
|
currency: marketDataItem.currency,
|
|
|
|
|
currency,
|
|
|
|
|
dataProviderInfo: this.getDataProviderInfo(),
|
|
|
|
|
dataSource: this.getName(),
|
|
|
|
|
name: this.yahooFinanceDataEnhancerService.formatName({
|
|
|
|
|
longName: quote.longname,
|
|
|
|
|
quoteType: quote.quoteType,
|
|
|
|
|
shortName: quote.shortname,
|
|
|
|
|
symbol: quote.symbol
|
|
|
|
|
})
|
|
|
|
|
longName,
|
|
|
|
|
quoteType,
|
|
|
|
|
shortName,
|
|
|
|
|
symbol
|
|
|
|
|
}),
|
|
|
|
|
symbol:
|
|
|
|
|
this.yahooFinanceDataEnhancerService.convertFromYahooFinanceSymbol(
|
|
|
|
|
symbol
|
|
|
|
|
)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|