Browse Source

Task/refactor transactionCount to activitiesCount in portfolio holding response (#5709)

* Refactor transactionCount to activitiesCount in portfolio holding response

* Update changelog
pull/5726/head
Tanbir Ali 6 days ago
committed by GitHub
parent
commit
d2fe16c794
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      CHANGELOG.md
  2. 6
      apps/api/src/app/portfolio/portfolio.service.ts
  3. 8
      apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts
  4. 6
      apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html
  5. 2
      libs/common/src/lib/interfaces/responses/portfolio-holding-response.interface.ts

1
CHANGELOG.md

@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Changed the _As seen in_ section on the landing page to an animated carousel
- Refactored `transactionCount` to `activitiesCount` in the endpoint `GET api/v1/portfolio/holding/:dataSource/:symbol`
- Refactored various components to use self-closing tags
- Improved the language localization for German (`de`)

6
apps/api/src/app/portfolio/portfolio.service.ts

@ -778,6 +778,7 @@ export class PortfolioService {
if (activities.length === 0) {
return {
activities: [],
activitiesCount: 0,
averagePrice: undefined,
dataProviderInfo: undefined,
dividendInBaseCurrency: undefined,
@ -802,7 +803,6 @@ export class PortfolioService {
quantity: undefined,
SymbolProfile: undefined,
tags: [],
transactionCount: undefined,
value: undefined
};
}
@ -966,8 +966,8 @@ export class PortfolioService {
marketPriceMin,
SymbolProfile,
tags,
transactionCount,
activities: activitiesOfHolding,
activitiesCount: transactionCount,
averagePrice: averagePrice.toNumber(),
dataProviderInfo: portfolioCalculator.getDataProviderInfos()?.[0],
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(),
@ -1070,6 +1070,7 @@ export class PortfolioService {
marketPriceMin,
SymbolProfile,
activities: [],
activitiesCount: 0,
averagePrice: 0,
dataProviderInfo: undefined,
dividendInBaseCurrency: 0,
@ -1095,7 +1096,6 @@ export class PortfolioService {
},
quantity: 0,
tags: [],
transactionCount: undefined,
value: 0
};
}

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

@ -100,6 +100,7 @@ import { HoldingDetailDialogParams } from './interfaces/interfaces';
templateUrl: 'holding-detail-dialog.html'
})
export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
public activitiesCount: number;
public activityForm: FormGroup;
public accounts: Account[];
public assetClass: string;
@ -151,8 +152,6 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
public SymbolProfile: EnhancedSymbolProfile;
public tags: Tag[];
public tagsAvailable: Tag[];
public totalItems: number;
public transactionCount: number;
public user: User;
public value: number;
@ -261,6 +260,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe(
({
activitiesCount,
averagePrice,
dataProviderInfo,
dividendInBaseCurrency,
@ -279,9 +279,9 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
quantity,
SymbolProfile,
tags,
transactionCount,
value
}) => {
this.activitiesCount = activitiesCount;
this.averagePrice = averagePrice;
if (
@ -429,8 +429,6 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
this.activityForm.setValue({ tags: this.tags }, { emitEvent: false });
this.transactionCount = transactionCount;
this.totalItems = transactionCount;
this.value = value;
if (SymbolProfile?.assetClass) {

6
apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html

@ -223,9 +223,9 @@
<gf-value
size="medium"
[locale]="data.locale"
[value]="transactionCount"
[value]="activitiesCount"
>
@if (transactionCount === 1) {
@if (activitiesCount === 1) {
<ng-container i18n>Activity</ng-container>
} @else {
<ng-container i18n>Activities</ng-container>
@ -363,7 +363,7 @@
[sortColumn]="sortColumn"
[sortDirection]="sortDirection"
[sortDisabled]="true"
[totalItems]="totalItems"
[totalItems]="activitiesCount"
(activityToClone)="onCloneActivity($event)"
(activityToUpdate)="onUpdateActivity($event)"
(export)="onExport()"

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

@ -10,6 +10,7 @@ import { Tag } from '@prisma/client';
export interface PortfolioHoldingResponse {
activities: Activity[];
activitiesCount: number;
averagePrice: number;
dataProviderInfo: DataProviderInfo;
dividendInBaseCurrency: number;
@ -34,6 +35,5 @@ export interface PortfolioHoldingResponse {
quantity: number;
SymbolProfile: EnhancedSymbolProfile;
tags: Tag[];
transactionCount: number;
value: number;
}

Loading…
Cancel
Save