Browse Source
			
			
			Feature/skip data enhancement if data is inaccurate (#935)
			
				* Skip data enhancer if data is inaccurate
* Update changelog
			
			
				pull/936/head^2
			
			
		 
		
			
				
					
						 Thomas Kaul
					
					3 years ago
						Thomas Kaul
					
					3 years ago
					
						
							committed by
							
								 GitHub
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 4AEE18F83AFDEB23
						
					
				
			
		
		
		
	
		
			
				 2 changed files with 
14 additions and 
3 deletions
			 
			
		 
		
			
				- 
					
					
					 
					CHANGELOG.md
				
- 
					
					
					 
					apps/api/src/services/data-provider/data-enhancer/trackinsight/trackinsight.service.ts
				
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. | 
			
		
	
		
			
				
					|  |  |  | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | 
			
		
	
		
			
				
					|  |  |  | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ## Unreleased | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ### Changed | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | - Skipped data enhancer (_Trackinsight_) if data is inaccurate | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ## 1.149.0 - 16.05.2022 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ### Added | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -32,7 +32,7 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { | 
			
		
	
		
			
				
					|  |  |  |       return response; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     const holdings = await getJSON( | 
			
		
	
		
			
				
					|  |  |  |     const result = await getJSON( | 
			
		
	
		
			
				
					|  |  |  |       `${TrackinsightDataEnhancerService.baseUrl}/${symbol}.json` | 
			
		
	
		
			
				
					|  |  |  |     ).catch(() => { | 
			
		
	
		
			
				
					|  |  |  |       return getJSON( | 
			
		
	
	
		
			
				
					|  |  | @ -42,12 +42,17 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     }); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if (result.weight < 0.95) { | 
			
		
	
		
			
				
					|  |  |  |       // Skip if data is inaccurate
 | 
			
		
	
		
			
				
					|  |  |  |       return response; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if ( | 
			
		
	
		
			
				
					|  |  |  |       !response.countries || | 
			
		
	
		
			
				
					|  |  |  |       (response.countries as unknown as Country[]).length === 0 | 
			
		
	
		
			
				
					|  |  |  |     ) { | 
			
		
	
		
			
				
					|  |  |  |       response.countries = []; | 
			
		
	
		
			
				
					|  |  |  |       for (const [name, value] of Object.entries<any>(holdings.countries)) { | 
			
		
	
		
			
				
					|  |  |  |       for (const [name, value] of Object.entries<any>(result.countries)) { | 
			
		
	
		
			
				
					|  |  |  |         let countryCode: string; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         for (const [key, country] of Object.entries<any>( | 
			
		
	
	
		
			
				
					|  |  | @ -75,7 +80,7 @@ export class TrackinsightDataEnhancerService implements DataEnhancerInterface { | 
			
		
	
		
			
				
					|  |  |  |       (response.sectors as unknown as Sector[]).length === 0 | 
			
		
	
		
			
				
					|  |  |  |     ) { | 
			
		
	
		
			
				
					|  |  |  |       response.sectors = []; | 
			
		
	
		
			
				
					|  |  |  |       for (const [name, value] of Object.entries<any>(holdings.sectors)) { | 
			
		
	
		
			
				
					|  |  |  |       for (const [name, value] of Object.entries<any>(result.sectors)) { | 
			
		
	
		
			
				
					|  |  |  |         response.sectors.push({ | 
			
		
	
		
			
				
					|  |  |  |           name: TrackinsightDataEnhancerService.sectorsMapping[name] ?? name, | 
			
		
	
		
			
				
					|  |  |  |           weight: value.weight | 
			
		
	
	
		
			
				
					|  |  | 
 |