Browse Source
			
			
			Bugfix/change date creation from string using parse iso (#2236)
			
				* Change date creation using parseISO
parseISO provides consistent date parsing across different time zones
* Update changelog
			
			
				pull/2239/head
			
			
		 
		
			
				
					
						 Thomas Kaul
					
					2 years ago
						Thomas Kaul
					
					2 years ago
					
						
							committed by
							
								 GitHub
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: 4AEE18F83AFDEB23
						
					
				
			
		
		
		
	
		
			
				 5 changed files with 
12 additions and 
6 deletions
			 
			
		 
		
			
				- 
					
					
					 
					CHANGELOG.md
				
- 
					
					
					 
					apps/api/src/app/admin/admin.controller.ts
				
- 
					
					
					 
					apps/api/src/app/exchange-rate/exchange-rate.controller.ts
				
- 
					
					
					 
					apps/api/src/app/symbol/symbol.controller.ts
				
- 
					
					
					 
					apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts
				
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | - Added the data export feature to the user account page | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ### Fixed | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | - Fixed an issue with the date parsing in the historical market data editor of the admin control panel | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ## 1.300.0 - 2023-08-11 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | ### Added | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -38,7 +38,7 @@ import { | 
			
		
	
		
			
				
					|  |  |  | import { REQUEST } from '@nestjs/core'; | 
			
		
	
		
			
				
					|  |  |  | import { AuthGuard } from '@nestjs/passport'; | 
			
		
	
		
			
				
					|  |  |  | import { DataSource, MarketData, Prisma, SymbolProfile } from '@prisma/client'; | 
			
		
	
		
			
				
					|  |  |  | import { isDate } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { isDate, parseISO } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | import { StatusCodes, getReasonPhrase } from 'http-status-codes'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { AdminService } from './admin.service'; | 
			
		
	
	
		
			
				
					|  |  | @ -233,7 +233,7 @@ export class AdminController { | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     const date = new Date(dateString); | 
			
		
	
		
			
				
					|  |  |  |     const date = parseISO(dateString); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if (!isDate(date)) { | 
			
		
	
		
			
				
					|  |  |  |       throw new HttpException( | 
			
		
	
	
		
			
				
					|  |  | @ -333,7 +333,7 @@ export class AdminController { | 
			
		
	
		
			
				
					|  |  |  |       ); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     const date = new Date(dateString); | 
			
		
	
		
			
				
					|  |  |  |     const date = parseISO(dateString); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     return this.marketDataService.updateMarketData({ | 
			
		
	
		
			
				
					|  |  |  |       data: { marketPrice: data.marketPrice, state: 'CLOSE' }, | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -10,6 +10,7 @@ import { AuthGuard } from '@nestjs/passport'; | 
			
		
	
		
			
				
					|  |  |  | import { StatusCodes, getReasonPhrase } from 'http-status-codes'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | import { ExchangeRateService } from './exchange-rate.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseISO } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | @Controller('exchange-rate') | 
			
		
	
		
			
				
					|  |  |  | export class ExchangeRateController { | 
			
		
	
	
		
			
				
					|  |  | @ -23,7 +24,7 @@ export class ExchangeRateController { | 
			
		
	
		
			
				
					|  |  |  |     @Param('dateString') dateString: string, | 
			
		
	
		
			
				
					|  |  |  |     @Param('symbol') symbol: string | 
			
		
	
		
			
				
					|  |  |  |   ): Promise<IDataProviderHistoricalResponse> { | 
			
		
	
		
			
				
					|  |  |  |     const date = new Date(dateString); | 
			
		
	
		
			
				
					|  |  |  |     const date = parseISO(dateString); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     const exchangeRate = await this.exchangeRateService.getExchangeRate({ | 
			
		
	
		
			
				
					|  |  |  |       date, | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -21,6 +21,7 @@ import { isDate, isEmpty } from 'lodash'; | 
			
		
	
		
			
				
					|  |  |  | import { LookupItem } from './interfaces/lookup-item.interface'; | 
			
		
	
		
			
				
					|  |  |  | import { SymbolItem } from './interfaces/symbol-item.interface'; | 
			
		
	
		
			
				
					|  |  |  | import { SymbolService } from './symbol.service'; | 
			
		
	
		
			
				
					|  |  |  | import { parseISO } from 'date-fns'; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | @Controller('symbol') | 
			
		
	
		
			
				
					|  |  |  | export class SymbolController { | 
			
		
	
	
		
			
				
					|  |  | @ -93,7 +94,7 @@ export class SymbolController { | 
			
		
	
		
			
				
					|  |  |  |     @Param('dateString') dateString: string, | 
			
		
	
		
			
				
					|  |  |  |     @Param('symbol') symbol: string | 
			
		
	
		
			
				
					|  |  |  |   ): Promise<IDataProviderHistoricalResponse> { | 
			
		
	
		
			
				
					|  |  |  |     const date = new Date(dateString); | 
			
		
	
		
			
				
					|  |  |  |     const date = parseISO(dateString); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if (!isDate(date)) { | 
			
		
	
		
			
				
					|  |  |  |       throw new HttpException( | 
			
		
	
	
		
			
				
					|  |  | 
 | 
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					|  |  | @ -154,7 +154,7 @@ export class AdminMarketDataDetailComponent implements OnChanges, OnInit { | 
			
		
	
		
			
				
					|  |  |  |     day: string; | 
			
		
	
		
			
				
					|  |  |  |     yearMonth: string; | 
			
		
	
		
			
				
					|  |  |  |   }) { | 
			
		
	
		
			
				
					|  |  |  |     const date = new Date(`${yearMonth}-${day}`); | 
			
		
	
		
			
				
					|  |  |  |     const date = parseISO(`${yearMonth}-${day}`); | 
			
		
	
		
			
				
					|  |  |  |     const marketPrice = this.marketDataByMonth[yearMonth]?.[day]?.marketPrice; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     if (isSameDay(date, new Date())) { | 
			
		
	
	
		
			
				
					|  |  | 
 |