|
|
@ -12,8 +12,11 @@ import { |
|
|
|
IDataProviderHistoricalResponse, |
|
|
|
IDataProviderResponse |
|
|
|
} from '@ghostfolio/api/services/interfaces/interfaces'; |
|
|
|
import { REPLACE_NAME_PARTS } from '@ghostfolio/common/config'; |
|
|
|
import { DATE_FORMAT, parseDate } from '@ghostfolio/common/helper'; |
|
|
|
import { |
|
|
|
DEFAULT_CURRENCY, |
|
|
|
REPLACE_NAME_PARTS |
|
|
|
} from '@ghostfolio/common/config'; |
|
|
|
import { DATE_FORMAT, isCurrency, parseDate } from '@ghostfolio/common/helper'; |
|
|
|
import { |
|
|
|
DataProviderInfo, |
|
|
|
LookupItem, |
|
|
@ -67,7 +70,15 @@ export class FinancialModelingPrepService implements DataProviderInterface { |
|
|
|
}; |
|
|
|
|
|
|
|
try { |
|
|
|
if (this.cryptocurrencyService.isCryptocurrency(symbol)) { |
|
|
|
if ( |
|
|
|
isCurrency(symbol.substring(0, symbol.length - DEFAULT_CURRENCY.length)) |
|
|
|
) { |
|
|
|
response.assetClass = AssetClass.LIQUIDITY; |
|
|
|
response.assetSubClass = AssetSubClass.CASH; |
|
|
|
response.currency = symbol.substring( |
|
|
|
symbol.length - DEFAULT_CURRENCY.length |
|
|
|
); |
|
|
|
} else if (this.cryptocurrencyService.isCryptocurrency(symbol)) { |
|
|
|
const [quote] = await fetch( |
|
|
|
`${this.URL}/quote/${symbol}?apikey=${this.apiKey}`, |
|
|
|
{ |
|
|
@ -77,7 +88,9 @@ export class FinancialModelingPrepService implements DataProviderInterface { |
|
|
|
|
|
|
|
response.assetClass = AssetClass.LIQUIDITY; |
|
|
|
response.assetSubClass = AssetSubClass.CRYPTOCURRENCY; |
|
|
|
response.currency = symbol.substring(symbol.length - 3); |
|
|
|
response.currency = symbol.substring( |
|
|
|
symbol.length - DEFAULT_CURRENCY.length |
|
|
|
); |
|
|
|
response.name = quote.name; |
|
|
|
} else { |
|
|
|
const [assetProfile] = await fetch( |
|
|
@ -472,15 +485,17 @@ export class FinancialModelingPrepService implements DataProviderInterface { |
|
|
|
let assetClass: AssetClass; |
|
|
|
let assetSubClass: AssetSubClass; |
|
|
|
|
|
|
|
if (profile.isEtf) { |
|
|
|
assetClass = AssetClass.EQUITY; |
|
|
|
assetSubClass = AssetSubClass.ETF; |
|
|
|
} else if (profile.isFund) { |
|
|
|
assetClass = AssetClass.EQUITY; |
|
|
|
assetSubClass = AssetSubClass.MUTUALFUND; |
|
|
|
} else { |
|
|
|
assetClass = AssetClass.EQUITY; |
|
|
|
assetSubClass = AssetSubClass.STOCK; |
|
|
|
if (profile) { |
|
|
|
if (profile.isEtf) { |
|
|
|
assetClass = AssetClass.EQUITY; |
|
|
|
assetSubClass = AssetSubClass.ETF; |
|
|
|
} else if (profile.isFund) { |
|
|
|
assetClass = AssetClass.EQUITY; |
|
|
|
assetSubClass = AssetSubClass.MUTUALFUND; |
|
|
|
} else { |
|
|
|
assetClass = AssetClass.EQUITY; |
|
|
|
assetSubClass = AssetSubClass.STOCK; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return { assetClass, assetSubClass }; |
|
|
|