| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -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 }; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |