Browse Source

refactoring

pull/5538/head
David Requeno 2 days ago
parent
commit
4357bab4e9
  1. 18
      apps/api/src/app/endpoints/public/public.controller.ts
  2. 4
      apps/client/src/app/pages/public/public-page.component.ts
  3. 1
      apps/client/src/app/pages/public/public-page.html
  4. 19
      libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts

18
apps/api/src/app/endpoints/public/public.controller.ts

@ -93,15 +93,21 @@ export class PublicController {
const { activities } = await latestActivitiesPromise; const { activities } = await latestActivitiesPromise;
const latestActivities = activities.map((a) => ({ const latestActivities = activities.map((a) => ({
account: a.account
? {
currency: a.account.currency,
name: a.account.name,
platform: a.account.platform
}
: undefined,
currency: a.currency,
date: a.date, date: a.date,
quantity: a.quantity, quantity: a.quantity,
SymbolProfile: { SymbolProfile: a.SymbolProfile,
dataSource: a.SymbolProfile?.dataSource,
name: a.SymbolProfile?.name ?? '',
symbol: a.SymbolProfile?.symbol ?? ''
},
type: a.type, type: a.type,
unitPrice: a.unitPrice unitPrice: a.unitPrice,
value: a.value,
valueInBaseCurrency: a.valueInBaseCurrency
})); }));
Object.values(markets ?? {}).forEach((market) => { Object.values(markets ?? {}).forEach((market) => {

4
apps/client/src/app/pages/public/public-page.component.ts

@ -58,12 +58,12 @@ export class GfPublicPageComponent implements OnInit {
}; };
public defaultAlias = $localize`someone`; public defaultAlias = $localize`someone`;
public deviceType: string; public deviceType: string;
public maxSafeInteger = Number.MAX_SAFE_INTEGER;
public latestActivitiesDataSource: MatTableDataSource<Activity>;
public holdings: PublicPortfolioResponse['holdings'][string][]; public holdings: PublicPortfolioResponse['holdings'][string][];
public latestActivitiesDataSource: MatTableDataSource<Activity>;
public markets: { public markets: {
[key in Market]: { id: Market; valueInPercentage: number }; [key in Market]: { id: Market; valueInPercentage: number };
}; };
public maxSafeInteger = Number.MAX_SAFE_INTEGER;
public positions: { public positions: {
[symbol: string]: Pick<PortfolioPosition, 'currency' | 'name'> & { [symbol: string]: Pick<PortfolioPosition, 'currency' | 'name'> & {
value: number; value: number;

1
apps/client/src/app/pages/public/public-page.html

@ -220,6 +220,7 @@
[hasPermissionToExportActivities]="false" [hasPermissionToExportActivities]="false"
[hasPermissionToOpenDetails]="false" [hasPermissionToOpenDetails]="false"
[pageSize]="maxSafeInteger" [pageSize]="maxSafeInteger"
[showActions]="false"
/> />
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>

19
libs/common/src/lib/interfaces/responses/public-portfolio-response.interface.ts

@ -1,7 +1,8 @@
import type { DataSource, Order } from '@prisma/client'; import type { Order } from '@prisma/client';
import { PortfolioDetails, PortfolioPosition } from '..'; import { EnhancedSymbolProfile, PortfolioDetails, PortfolioPosition } from '..';
import { Market } from '../../types'; import { Market } from '../../types';
import type { AccountWithPlatform } from '../../types';
export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 { export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 {
alias?: string; alias?: string;
@ -25,12 +26,14 @@ export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 {
| 'valueInPercentage' | 'valueInPercentage'
>; >;
}; };
latestActivities: (Pick<Order, 'date' | 'quantity' | 'type' | 'unitPrice'> & { latestActivities: (Pick<
SymbolProfile: { Order,
dataSource: DataSource; 'currency' | 'date' | 'quantity' | 'type' | 'unitPrice'
name: string; > & {
symbol: string; account?: Pick<AccountWithPlatform, 'currency' | 'name' | 'platform'>;
}; SymbolProfile?: EnhancedSymbolProfile;
value: number;
valueInBaseCurrency: number;
})[]; })[];
markets: { markets: {
[key in Market]: Pick< [key in Market]: Pick<

Loading…
Cancel
Save