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 dataSource: MatTableDataSource<Activity>;
protected dateOfFirstActivity: string;
protected dateOfFirstActivity: Date;
protected dividendInBaseCurrency: number;
protected dividendInBaseCurrencyPrecision = 2;
protected dividendYieldPercentWithCurrencyEffect: number;
@ -452,16 +452,16 @@ export class GfHoldingDetailDialogComponent implements OnInit {
}
}
if (isToday(parseISO(this.dateOfFirstActivity))) {
if (isToday(this.dateOfFirstActivity)) {
// Add average price
this.historicalDataItems.push({
date: this.dateOfFirstActivity,
date: this.dateOfFirstActivity.toISOString(),
value: this.averagePrice
});
// Add benchmark 1
this.benchmarkDataItems.push({
date: this.dateOfFirstActivity,
date: this.dateOfFirstActivity.toISOString(),
value: averagePrice
});
@ -492,7 +492,7 @@ export class GfHoldingDetailDialogComponent implements OnInit {
if (
this.benchmarkDataItems[0]?.value === undefined &&
isSameMonth(parseISO(this.dateOfFirstActivity), new Date())
isSameMonth(this.dateOfFirstActivity, new Date())
) {
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;
averagePrice: number;
dataProviderInfo: DataProviderInfo;
dateOfFirstActivity: string;
dateOfFirstActivity: Date;
dividendInBaseCurrency: number;
dividendYieldPercent: 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() dataSource: DataSource;
@Input() dateOfFirstActivity: string;
@Input() dateOfFirstActivity: Date;
@Input() symbol: string;
@Input() user: User;
@ -124,7 +124,7 @@ export class GfHistoricalMarketDataEditorComponent
public ngOnChanges() {
if (this.dateOfFirstActivity) {
let date = parseISO(this.dateOfFirstActivity);
let date = this.dateOfFirstActivity;
const missingMarketData: { date: Date; marketPrice?: number }[] = [];
@ -174,7 +174,7 @@ export class GfHistoricalMarketDataEditorComponent
const dates = Object.keys(this.marketDataByMonth).sort();
const startDateString = first(dates);
const startDate = min([
parseISO(this.dateOfFirstActivity),
this.dateOfFirstActivity,
...(startDateString ? [parseISO(startDateString)] : [])
]);
const endDateString = last(dates);

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

@ -446,9 +446,20 @@ export class DataService {
dataSource: DataSource;
symbol: string;
}) {
return this.http.get<PortfolioHoldingResponse>(
`/api/v1/portfolio/holding/${dataSource}/${symbol}`
);
return this.http
.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 {

Loading…
Cancel
Save