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 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,
quantity: a.quantity,
SymbolProfile: {
dataSource: a.SymbolProfile?.dataSource,
name: a.SymbolProfile?.name ?? '',
symbol: a.SymbolProfile?.symbol ?? ''
},
SymbolProfile: a.SymbolProfile,
type: a.type,
unitPrice: a.unitPrice
unitPrice: a.unitPrice,
value: a.value,
valueInBaseCurrency: a.valueInBaseCurrency
}));
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 deviceType: string;
public maxSafeInteger = Number.MAX_SAFE_INTEGER;
public latestActivitiesDataSource: MatTableDataSource<Activity>;
public holdings: PublicPortfolioResponse['holdings'][string][];
public latestActivitiesDataSource: MatTableDataSource<Activity>;
public markets: {
[key in Market]: { id: Market; valueInPercentage: number };
};
public maxSafeInteger = Number.MAX_SAFE_INTEGER;
public positions: {
[symbol: string]: Pick<PortfolioPosition, 'currency' | 'name'> & {
value: number;

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

@ -220,6 +220,7 @@
[hasPermissionToExportActivities]="false"
[hasPermissionToOpenDetails]="false"
[pageSize]="maxSafeInteger"
[showActions]="false"
/>
</mat-card-content>
</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 type { AccountWithPlatform } from '../../types';
export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 {
alias?: string;
@ -25,12 +26,14 @@ export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 {
| 'valueInPercentage'
>;
};
latestActivities: (Pick<Order, 'date' | 'quantity' | 'type' | 'unitPrice'> & {
SymbolProfile: {
dataSource: DataSource;
name: string;
symbol: string;
};
latestActivities: (Pick<
Order,
'currency' | 'date' | 'quantity' | 'type' | 'unitPrice'
> & {
account?: Pick<AccountWithPlatform, 'currency' | 'name' | 'platform'>;
SymbolProfile?: EnhancedSymbolProfile;
value: number;
valueInBaseCurrency: number;
})[];
markets: {
[key in Market]: Pick<

Loading…
Cancel
Save