Browse Source

Improve search

pull/5518/head
Thomas Kaul 2 months ago
parent
commit
658b63068a
  1. 43
      apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts

43
apps/api/src/services/data-provider/yahoo-finance/yahoo-finance.service.ts

@ -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) {

Loading…
Cancel
Save