Browse Source

feat(client): convert dateOfFirstActivity to Date

pull/7050/head
KenTandrian 3 months ago
parent
commit
5eaaf86efb
  1. 10
      apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
  2. 2
      libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts
  3. 6
      libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts
  4. 17
      libs/ui/src/lib/services/data.service.ts

10
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts

@ -126,7 +126,7 @@ export class GfHoldingDetailDialogComponent implements OnInit {
}; };
protected dataProviderInfo: DataProviderInfo; protected dataProviderInfo: DataProviderInfo;
protected dataSource: MatTableDataSource<Activity>; protected dataSource: MatTableDataSource<Activity>;
protected dateOfFirstActivity: string; protected dateOfFirstActivity: Date;
protected dividendInBaseCurrency: number; protected dividendInBaseCurrency: number;
protected dividendInBaseCurrencyPrecision = 2; protected dividendInBaseCurrencyPrecision = 2;
protected dividendYieldPercentWithCurrencyEffect: number; protected dividendYieldPercentWithCurrencyEffect: number;
@ -452,16 +452,16 @@ export class GfHoldingDetailDialogComponent implements OnInit {
} }
} }
if (isToday(parseISO(this.dateOfFirstActivity))) { if (isToday(this.dateOfFirstActivity)) {
// Add average price // Add average price
this.historicalDataItems.push({ this.historicalDataItems.push({
date: this.dateOfFirstActivity, date: this.dateOfFirstActivity.toISOString(),
value: this.averagePrice value: this.averagePrice
}); });
// Add benchmark 1 // Add benchmark 1
this.benchmarkDataItems.push({ this.benchmarkDataItems.push({
date: this.dateOfFirstActivity, date: this.dateOfFirstActivity.toISOString(),
value: averagePrice value: averagePrice
}); });
@ -492,7 +492,7 @@ export class GfHoldingDetailDialogComponent implements OnInit {
if ( if (
this.benchmarkDataItems[0]?.value === undefined && this.benchmarkDataItems[0]?.value === undefined &&
isSameMonth(parseISO(this.dateOfFirstActivity), new Date()) isSameMonth(this.dateOfFirstActivity, new Date())
) { ) {
this.benchmarkDataItems[0].value = this.averagePrice; this.benchmarkDataItems[0].value = this.averagePrice;
} }

2
libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts

@ -11,7 +11,7 @@ export interface PortfolioHoldingResponse {
activitiesCount: number; activitiesCount: number;
averagePrice: number; averagePrice: number;
dataProviderInfo: DataProviderInfo; dataProviderInfo: DataProviderInfo;
dateOfFirstActivity: string; dateOfFirstActivity: Date;
dividendInBaseCurrency: number; dividendInBaseCurrency: number;
dividendYieldPercent: number; dividendYieldPercent: number;
dividendYieldPercentWithCurrencyEffect: number; dividendYieldPercentWithCurrencyEffect: number;

6
libs/ui/src/lib/historical-market-data-editor/historical-market-data-editor.component.ts

@ -68,7 +68,7 @@ export class GfHistoricalMarketDataEditorComponent
@Input() currency: string; @Input() currency: string;
@Input() dataSource: DataSource; @Input() dataSource: DataSource;
@Input() dateOfFirstActivity: string; @Input() dateOfFirstActivity: Date;
@Input() symbol: string; @Input() symbol: string;
@Input() user: User; @Input() user: User;
@ -124,7 +124,7 @@ export class GfHistoricalMarketDataEditorComponent
public ngOnChanges() { public ngOnChanges() {
if (this.dateOfFirstActivity) { if (this.dateOfFirstActivity) {
let date = parseISO(this.dateOfFirstActivity); let date = this.dateOfFirstActivity;
const missingMarketData: { date: Date; marketPrice?: number }[] = []; const missingMarketData: { date: Date; marketPrice?: number }[] = [];
@ -174,7 +174,7 @@ export class GfHistoricalMarketDataEditorComponent
const dates = Object.keys(this.marketDataByMonth).sort(); const dates = Object.keys(this.marketDataByMonth).sort();
const startDateString = first(dates); const startDateString = first(dates);
const startDate = min([ const startDate = min([
parseISO(this.dateOfFirstActivity), this.dateOfFirstActivity,
...(startDateString ? [parseISO(startDateString)] : []) ...(startDateString ? [parseISO(startDateString)] : [])
]); ]);
const endDateString = last(dates); const endDateString = last(dates);

17
libs/ui/src/lib/services/data.service.ts

@ -446,9 +446,20 @@ export class DataService {
dataSource: DataSource; dataSource: DataSource;
symbol: string; symbol: string;
}) { }) {
return this.http.get<PortfolioHoldingResponse>( return this.http
`/api/v1/portfolio/holding/${dataSource}/${symbol}` .get<PortfolioHoldingResponse>(
); `/api/v1/portfolio/holding/${dataSource}/${symbol}`
)
.pipe(
map((response) => {
if (response.dateOfFirstActivity) {
response.dateOfFirstActivity = parseISO(
response.dateOfFirstActivity as unknown as string
);
}
return response;
})
);
} }
public fetchInfo(): InfoItem { public fetchInfo(): InfoItem {

Loading…
Cancel
Save