|
|
@ -133,56 +133,15 @@ export class DataProviderService implements DataProviderInterface { |
|
|
|
} = {}; |
|
|
|
|
|
|
|
for (const { dataSource, symbol } of aDataGatheringItems) { |
|
|
|
switch (dataSource) { |
|
|
|
case DataSource.ALPHA_VANTAGE: { |
|
|
|
if (this.configurationService.get('ALPHA_VANTAGE_API_KEY')) { |
|
|
|
const data = await this.alphaVantageService.getHistorical( |
|
|
|
[symbol], |
|
|
|
undefined, |
|
|
|
from, |
|
|
|
to |
|
|
|
); |
|
|
|
result[symbol] = data?.[symbol]; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
case DataSource.GHOSTFOLIO: { |
|
|
|
if (isGhostfolioScraperApiSymbol(symbol)) { |
|
|
|
const data = await this.ghostfolioScraperApiService.getHistorical( |
|
|
|
[symbol], |
|
|
|
undefined, |
|
|
|
from, |
|
|
|
to |
|
|
|
); |
|
|
|
result[symbol] = data?.[symbol]; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
case DataSource.RAKUTEN: { |
|
|
|
if ( |
|
|
|
isRakutenRapidApiSymbol(symbol) && |
|
|
|
this.configurationService.get('RAKUTEN_RAPID_API_KEY') |
|
|
|
) { |
|
|
|
const data = await this.rakutenRapidApiService.getHistorical( |
|
|
|
[symbol], |
|
|
|
undefined, |
|
|
|
from, |
|
|
|
to |
|
|
|
); |
|
|
|
result[symbol] = data?.[symbol]; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
case DataSource.YAHOO: { |
|
|
|
const data = await this.yahooFinanceService.getHistorical( |
|
|
|
[symbol], |
|
|
|
undefined, |
|
|
|
from, |
|
|
|
to |
|
|
|
); |
|
|
|
result[symbol] = data?.[symbol]; |
|
|
|
break; |
|
|
|
} |
|
|
|
const dataProvider = this.getDataProvider(dataSource); |
|
|
|
if (dataProvider.hasHistoricalData(symbol)) { |
|
|
|
const data = await dataProvider.getHistorical( |
|
|
|
[symbol], |
|
|
|
undefined, |
|
|
|
from, |
|
|
|
to |
|
|
|
); |
|
|
|
result[symbol] = data?.[symbol]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -190,15 +149,21 @@ export class DataProviderService implements DataProviderInterface { |
|
|
|
} |
|
|
|
|
|
|
|
public async search(aSymbol: string) { |
|
|
|
return this.getDataProvider().search(aSymbol); |
|
|
|
return this.getDataProvider( |
|
|
|
this.configurationService.get('DATA_SOURCES')[0] |
|
|
|
).search(aSymbol); |
|
|
|
} |
|
|
|
|
|
|
|
private getDataProvider() { |
|
|
|
switch (this.configurationService.get('DATA_SOURCES')[0]) { |
|
|
|
private getDataProvider(providerName: DataSource) { |
|
|
|
switch (providerName) { |
|
|
|
case DataSource.ALPHA_VANTAGE: |
|
|
|
return this.alphaVantageService; |
|
|
|
case DataSource.YAHOO: |
|
|
|
return this.yahooFinanceService; |
|
|
|
case DataSource.RAKUTEN: |
|
|
|
return this.rakutenRapidApiService; |
|
|
|
case DataSource.GHOSTFOLIO: |
|
|
|
return this.ghostfolioScraperApiService; |
|
|
|
default: |
|
|
|
throw new Error('No data provider has been found.'); |
|
|
|
} |
|
|
|