Browse Source

Refactoring

pull/3200/head
Thomas Kaul 1 year ago
parent
commit
3f167a1197
  1. 22
      apps/api/src/app/import/import.service.ts
  2. 10
      apps/api/src/app/order/interfaces/activities.interface.ts
  3. 41
      apps/api/src/app/order/order.service.ts
  4. 4
      apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts
  5. 5
      apps/api/src/app/portfolio/portfolio.service.ts
  6. 3
      apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts
  7. 6
      apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts

22
apps/api/src/app/import/import.service.ts

@ -117,7 +117,7 @@ export class ImportService {
feeInBaseCurrency: 0,
id: assetProfile.id,
isDraft: false,
SymbolProfile: <SymbolProfile>(<unknown>assetProfile),
SymbolProfile: assetProfile,
symbolProfileId: assetProfile.id,
type: 'DIVIDEND',
unitPrice: marketPrice,
@ -521,22 +521,14 @@ export class ImportService {
currency,
dataSource,
symbol,
assetClass: null,
assetSubClass: null,
comment: null,
countries: null,
activitiesCount: undefined,
assetClass: undefined,
assetSubClass: undefined,
countries: undefined,
createdAt: undefined,
figi: null,
figiComposite: null,
figiShareClass: null,
id: undefined,
isin: null,
name: null,
scraperConfiguration: null,
sectors: null,
symbolMapping: null,
updatedAt: undefined,
url: null
sectors: undefined,
updatedAt: undefined
}
};
}

10
apps/api/src/app/order/interfaces/activities.interface.ts

@ -1,13 +1,19 @@
import { OrderWithAccount } from '@ghostfolio/common/types';
import { EnhancedSymbolProfile } from '@ghostfolio/common/interfaces';
import { AccountWithPlatform } from '@ghostfolio/common/types';
import { Order, Tag } from '@prisma/client';
export interface Activities {
activities: Activity[];
count: number;
}
export interface Activity extends OrderWithAccount {
export interface Activity extends Order {
Account?: AccountWithPlatform;
error?: ActivityError;
feeInBaseCurrency: number;
SymbolProfile?: EnhancedSymbolProfile;
tags?: Tag[];
updateAccountBalance?: boolean;
value: number;
valueInBaseCurrency: number;

41
apps/api/src/app/order/order.service.ts

@ -339,24 +339,7 @@ export class OrderService {
await this.symbolProfileService.getSymbolProfiles(uniqueAssets);
const activities = orders.map((order) => {
const {
assetClass,
assetSubClass,
comment,
createdAt,
currency,
dataSource,
figi,
figiComposite,
figiShareClass,
id,
isin,
name,
symbol,
symbolMapping,
updatedAt,
url
} = assetProfiles.find(({ dataSource, symbol }) => {
const assetProfile = assetProfiles.find(({ dataSource, symbol }) => {
return (
dataSource === order.SymbolProfile.dataSource &&
symbol === order.SymbolProfile.symbol
@ -374,27 +357,7 @@ export class OrderService {
order.SymbolProfile.currency,
userCurrency
),
SymbolProfile: {
assetClass,
assetSubClass,
comment,
createdAt,
currency,
dataSource,
figi,
figiComposite,
figiShareClass,
id,
isin,
name,
symbol,
symbolMapping,
updatedAt,
url,
countries: null,
scraperConfiguration: null,
sectors: null
},
SymbolProfile: assetProfile,
// TODO: Use exchange rate of date
valueInBaseCurrency: this.exchangeRateDataService.toCurrency(
value,

4
apps/api/src/app/portfolio/interfaces/portfolio-position-detail.interface.ts

@ -1,9 +1,9 @@
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import {
DataProviderInfo,
EnhancedSymbolProfile,
HistoricalDataItem
} from '@ghostfolio/common/interfaces';
import { OrderWithAccount } from '@ghostfolio/common/types';
import { Account, Tag } from '@prisma/client';
@ -27,7 +27,7 @@ export interface PortfolioPositionDetail {
netPerformancePercent: number;
netPerformancePercentWithCurrencyEffect: number;
netPerformanceWithCurrencyEffect: number;
orders: OrderWithAccount[];
orders: Activity[];
quantity: number;
SymbolProfile: EnhancedSymbolProfile;
tags: Tag[];

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

@ -50,7 +50,6 @@ import type {
AccountWithValue,
DateRange,
GroupBy,
OrderWithAccount,
RequestWithUser,
UserWithSettings
} from '@ghostfolio/common/types';
@ -1592,7 +1591,7 @@ export class PortfolioService {
activities,
userCurrency
}: {
activities: OrderWithAccount[];
activities: Activity[];
userCurrency: string;
}) {
return getSum(
@ -1940,7 +1939,7 @@ export class PortfolioService {
activityType,
userCurrency
}: {
activities: OrderWithAccount[];
activities: Activity[];
activityType: ActivityType;
userCurrency: string;
}) {

3
apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts

@ -1,3 +1,4 @@
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { downloadAsFile } from '@ghostfolio/common/helper';
@ -41,7 +42,7 @@ export class AccountDetailDialog implements OnDestroy, OnInit {
public activities: OrderWithAccount[];
public balance: number;
public currency: string;
public dataSource: MatTableDataSource<OrderWithAccount>;
public dataSource: MatTableDataSource<Activity>;
public equity: number;
public hasPermissionToDeleteAccountBalance: boolean;
public historicalDataItems: HistoricalDataItem[];

6
apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts

@ -1,3 +1,4 @@
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import { DataService } from '@ghostfolio/client/services/data.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { DATE_FORMAT, downloadAsFile } from '@ghostfolio/common/helper';
@ -7,7 +8,6 @@ import {
LineChartItem,
User
} from '@ghostfolio/common/interfaces';
import { OrderWithAccount } from '@ghostfolio/common/types';
import { translate } from '@ghostfolio/ui/i18n';
import {
@ -37,7 +37,7 @@ import { PositionDetailDialogParams } from './interfaces/interfaces';
})
export class PositionDetailDialog implements OnDestroy, OnInit {
public accounts: Account[];
public activities: OrderWithAccount[];
public activities: Activity[];
public assetClass: string;
public assetSubClass: string;
public averagePrice: number;
@ -46,7 +46,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit {
[code: string]: { name: string; value: number };
};
public dataProviderInfo: DataProviderInfo;
public dataSource: MatTableDataSource<OrderWithAccount>;
public dataSource: MatTableDataSource<Activity>;
public dividendInBaseCurrency: number;
public feeInBaseCurrency: number;
public firstBuyDate: string;

Loading…
Cancel
Save