|  |  | @ -20,7 +20,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  |   DataSource, | 
			
		
	
		
			
				
					|  |  |  |   SymbolProfile | 
			
		
	
		
			
				
					|  |  |  | } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import { format, isToday } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { addDays, format, isSameDay, isToday } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import got from 'got'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | @Injectable() | 
			
		
	
	
		
			
				
					|  |  | @ -54,8 +54,62 @@ export class EodHistoricalDataService implements DataProviderInterface { | 
			
		
	
		
			
				
					|  |  |  |     }; | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   public async getDividends({}: GetDividendsParams) { | 
			
		
	
		
			
				
					|  |  |  |     return {}; | 
			
		
	
		
			
				
					|  |  |  |   public async getDividends({ | 
			
		
	
		
			
				
					|  |  |  |     from, | 
			
		
	
		
			
				
					|  |  |  |     requestTimeout = this.configurationService.get('REQUEST_TIMEOUT'), | 
			
		
	
		
			
				
					|  |  |  |     symbol, | 
			
		
	
		
			
				
					|  |  |  |     to | 
			
		
	
		
			
				
					|  |  |  |   }: GetDividendsParams): Promise<{ | 
			
		
	
		
			
				
					|  |  |  |     [date: string]: IDataProviderHistoricalResponse; | 
			
		
	
		
			
				
					|  |  |  |   }> { | 
			
		
	
		
			
				
					|  |  |  |     symbol = this.convertToEodSymbol(symbol); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if (isSameDay(from, to)) { | 
			
		
	
		
			
				
					|  |  |  |       to = addDays(to, 1); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     try { | 
			
		
	
		
			
				
					|  |  |  |       const abortController = new AbortController(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       const response: { | 
			
		
	
		
			
				
					|  |  |  |         [date: string]: IDataProviderHistoricalResponse; | 
			
		
	
		
			
				
					|  |  |  |       } = {}; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       setTimeout(() => { | 
			
		
	
		
			
				
					|  |  |  |         abortController.abort(); | 
			
		
	
		
			
				
					|  |  |  |       }, requestTimeout); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       const historicalResult = await got( | 
			
		
	
		
			
				
					|  |  |  |         `${this.URL}/div/${symbol}?api_token=${ | 
			
		
	
		
			
				
					|  |  |  |           this.apiKey | 
			
		
	
		
			
				
					|  |  |  |         }&fmt=json&from=${format(from, DATE_FORMAT)}&to=${format( | 
			
		
	
		
			
				
					|  |  |  |           to, | 
			
		
	
		
			
				
					|  |  |  |           DATE_FORMAT | 
			
		
	
		
			
				
					|  |  |  |         )}`,
 | 
			
		
	
		
			
				
					|  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |           // @ts-ignore
 | 
			
		
	
		
			
				
					|  |  |  |           signal: abortController.signal | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |       ).json<any>(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       for (const { date, value } of historicalResult) { | 
			
		
	
		
			
				
					|  |  |  |         response[date] = { | 
			
		
	
		
			
				
					|  |  |  |           marketPrice: value | 
			
		
	
		
			
				
					|  |  |  |         }; | 
			
		
	
		
			
				
					|  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       return response; | 
			
		
	
		
			
				
					|  |  |  |     } catch (error) { | 
			
		
	
		
			
				
					|  |  |  |       Logger.error( | 
			
		
	
		
			
				
					|  |  |  |         `Could not get dividends for ${symbol} (${this.getName()}) from ${format( | 
			
		
	
		
			
				
					|  |  |  |           from, | 
			
		
	
		
			
				
					|  |  |  |           DATE_FORMAT | 
			
		
	
		
			
				
					|  |  |  |         )} to ${format(to, DATE_FORMAT)}: [${error.name}] ${error.message}`,
 | 
			
		
	
		
			
				
					|  |  |  |         'EodHistoricalDataService' | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |       return {}; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |   public async getHistorical({ | 
			
		
	
	
		
			
				
					|  |  | 
 |