Browse Source

review change

- replace forEach with map
- adjust order of param/variable
- adjust method order
pull/2448/head
Kevin Lien 2 years ago
committed by Thomas
parent
commit
4bd719e68a
  1. 21
      apps/api/src/app/admin/admin.controller.ts
  2. 31
      apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
  3. 6
      apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html

21
apps/api/src/app/admin/admin.controller.ts

@ -314,11 +314,11 @@ export class AdminController {
return this.adminService.getMarketDataBySymbol({ dataSource, symbol }); return this.adminService.getMarketDataBySymbol({ dataSource, symbol });
} }
@UseGuards(AuthGuard('jwt'))
@Post('market-data/:dataSource/:symbol') @Post('market-data/:dataSource/:symbol')
@UseGuards(AuthGuard('jwt'))
public async updateMarketData( public async updateMarketData(
@Param('dataSource') dataSourceParam: DataSource, @Param('dataSource') dataSource: DataSource,
@Param('symbol') symbolParam: string, @Param('symbol') symbol: string,
@Body() data: UpdateBulkMarketDataDto @Body() data: UpdateBulkMarketDataDto
) { ) {
if ( if (
@ -332,16 +332,17 @@ export class AdminController {
StatusCodes.FORBIDDEN StatusCodes.FORBIDDEN
); );
} }
const dataBulkUpdate: Prisma.MarketDataUpdateInput[] = [];
data.marketData.forEach((entry) => { const dataBulkUpdate: Prisma.MarketDataUpdateInput[] = data.marketData.map(
dataBulkUpdate.push({ (entry) => ({
dataSource: dataSourceParam, dataSource: dataSource,
symbol: symbolParam, symbol: symbol,
date: entry.date, date: entry.date,
marketPrice: entry.marketPrice, marketPrice: entry.marketPrice,
state: 'CLOSE' state: 'CLOSE'
}); })
}); );
return this.marketDataService.updateMany({ return this.marketDataService.updateMany({
data: dataBulkUpdate data: dataBulkUpdate
}); });

31
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts

@ -45,8 +45,8 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
public countries: { public countries: {
[code: string]: { name: string; value: number }; [code: string]: { name: string; value: number };
}; };
public isBenchmark = false;
public historicalDataAsString: string; public historicalDataAsString: string;
public isBenchmark = false;
public marketDataDetails: MarketData[] = []; public marketDataDetails: MarketData[] = [];
public sectors: { public sectors: {
[name: string]: { name: string; value: number }; [name: string]: { name: string; value: number };
@ -203,23 +203,19 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
}); });
} }
public ngOnDestroy() {
this.unsubscribeSubject.next();
this.unsubscribeSubject.complete();
}
public importHistoricalData() { public importHistoricalData() {
const inputHistoricalData = this.historicalDataAsString; const inputHistoricalData = this.historicalDataAsString;
const inputSplittedByLine = inputHistoricalData.split('\n'); const inputSplittedByLine = inputHistoricalData.split('\n');
const dataBulkUpdate: UpdateMarketDataDto[] = []; const dataBulkUpdate: UpdateMarketDataDto[] = inputSplittedByLine.map(
inputSplittedByLine.forEach((line) => { (line) => {
const inputSplittedBySeparator = line.split(';'); const inputSplittedBySeparator = line.split(';');
const inputDate = parseISO(inputSplittedBySeparator[0]); const inputDate = parseISO(inputSplittedBySeparator[0]);
dataBulkUpdate.push({ return {
date: inputDate, date: inputDate,
marketPrice: Number(inputSplittedBySeparator[1]) marketPrice: Number(inputSplittedBySeparator[1])
}); };
}); }
);
this.adminService this.adminService
.postMarketData({ .postMarketData({
@ -234,4 +230,9 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
this.historicalDataAsString = ''; this.historicalDataAsString = '';
} }
public ngOnDestroy() {
this.unsubscribeSubject.next();
this.unsubscribeSubject.complete();
}
} }

6
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html

@ -54,7 +54,9 @@
<div class="mt-3"> <div class="mt-3">
<mat-form-field appearance="outline" class="w-100"> <mat-form-field appearance="outline" class="w-100">
<mat-label i18n>Historical Data</mat-label> <mat-label>
<ng-container i18n>Historical Data</ng-container> (CSV)
</mat-label>
<textarea <textarea
cdkAutosizeMaxRows="5" cdkAutosizeMaxRows="5"
cdkTextareaAutosize cdkTextareaAutosize
@ -68,7 +70,7 @@
</div> </div>
<div class="d-flex justify-content-end" mat-dialog-actions> <div class="d-flex justify-content-end" mat-dialog-actions>
<button color="warn" mat-flat-button (click)="importHistoricalData()"> <button color="accent" mat-flat-button (click)="importHistoricalData()">
<ng-container i18n>Import historical Data </ng-container> <ng-container i18n>Import historical Data </ng-container>
</button> </button>
</div> </div>

Loading…
Cancel
Save