Browse Source

Refactoring

pull/4567/head
Thomas Kaul 4 months ago
parent
commit
89f1d94f95
  1. 5
      apps/api/src/app/portfolio/calculator/mwr/portfolio-calculator.ts
  2. 4
      apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts
  3. 10
      apps/api/src/app/portfolio/calculator/portfolio-calculator.ts
  4. 5
      apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts
  5. 5
      apps/api/src/app/portfolio/calculator/roi/portfolio-calculator.ts
  6. 5
      apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts

5
apps/api/src/app/portfolio/calculator/mwr/portfolio-calculator.ts

@ -4,12 +4,17 @@ import {
SymbolMetrics
} from '@ghostfolio/common/interfaces';
import { PortfolioSnapshot } from '@ghostfolio/common/models';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
export class MwrPortfolioCalculator extends PortfolioCalculator {
protected calculateOverallPerformance(): PortfolioSnapshot {
throw new Error('Method not implemented.');
}
protected getPerformanceCalculationType() {
return PerformanceCalculationType.MWR;
}
protected getSymbolMetrics({}: {
end: Date;
exchangeRates: { [dateString: string]: number };

4
apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts

@ -45,7 +45,6 @@ export class PortfolioCalculatorFactory {
return new MwrPortfolioCalculator({
accountBalanceItems,
activities,
calculationType,
currency,
filters,
userId,
@ -60,7 +59,6 @@ export class PortfolioCalculatorFactory {
return new RoaiPortfolioCalculator({
accountBalanceItems,
activities,
calculationType,
currency,
filters,
userId,
@ -75,7 +73,6 @@ export class PortfolioCalculatorFactory {
return new RoiPortfolioCalculator({
accountBalanceItems,
activities,
calculationType,
currency,
filters,
userId,
@ -90,7 +87,6 @@ export class PortfolioCalculatorFactory {
return new TwrPortfolioCalculator({
accountBalanceItems,
activities,
calculationType,
currency,
filters,
userId,

10
apps/api/src/app/portfolio/calculator/portfolio-calculator.ts

@ -58,7 +58,6 @@ export abstract class PortfolioCalculator {
protected accountBalanceItems: HistoricalDataItem[];
protected activities: PortfolioOrder[];
private calculationType: PerformanceCalculationType;
private configurationService: ConfigurationService;
private currency: string;
private currentRateService: CurrentRateService;
@ -77,7 +76,6 @@ export abstract class PortfolioCalculator {
public constructor({
accountBalanceItems,
activities,
calculationType,
configurationService,
currency,
currentRateService,
@ -89,7 +87,6 @@ export abstract class PortfolioCalculator {
}: {
accountBalanceItems: HistoricalDataItem[];
activities: Activity[];
calculationType: PerformanceCalculationType;
configurationService: ConfigurationService;
currency: string;
currentRateService: CurrentRateService;
@ -100,7 +97,6 @@ export abstract class PortfolioCalculator {
userId: string;
}) {
this.accountBalanceItems = accountBalanceItems;
this.calculationType = calculationType;
this.configurationService = configurationService;
this.currency = currency;
this.currentRateService = currentRateService;
@ -628,6 +624,8 @@ export abstract class PortfolioCalculator {
};
}
protected abstract getPerformanceCalculationType(): PerformanceCalculationType;
public getDataProviderInfos() {
return this.dataProviderInfos;
}
@ -1078,7 +1076,7 @@ export abstract class PortfolioCalculator {
// Compute in the background
this.portfolioSnapshotService.addJobToQueue({
data: {
calculationType: this.calculationType,
calculationType: this.getPerformanceCalculationType(),
filters: this.filters,
userCurrency: this.currency,
userId: this.userId
@ -1095,7 +1093,7 @@ export abstract class PortfolioCalculator {
// Wait for computation
await this.portfolioSnapshotService.addJobToQueue({
data: {
calculationType: this.calculationType,
calculationType: this.getPerformanceCalculationType(),
filters: this.filters,
userCurrency: this.currency,
userId: this.userId

5
apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts

@ -9,6 +9,7 @@ import {
} from '@ghostfolio/common/interfaces';
import { PortfolioSnapshot, TimelinePosition } from '@ghostfolio/common/models';
import { DateRange } from '@ghostfolio/common/types';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
import { Logger } from '@nestjs/common';
import { Big } from 'big.js';
@ -112,6 +113,10 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator {
};
}
protected getPerformanceCalculationType() {
return PerformanceCalculationType.ROAI;
}
protected getSymbolMetrics({
chartDateMap,
dataSource,

5
apps/api/src/app/portfolio/calculator/roi/portfolio-calculator.ts

@ -4,12 +4,17 @@ import {
SymbolMetrics
} from '@ghostfolio/common/interfaces';
import { PortfolioSnapshot } from '@ghostfolio/common/models';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
export class RoiPortfolioCalculator extends PortfolioCalculator {
protected calculateOverallPerformance(): PortfolioSnapshot {
throw new Error('Method not implemented.');
}
protected getPerformanceCalculationType() {
return PerformanceCalculationType.ROI;
}
protected getSymbolMetrics({}: {
end: Date;
exchangeRates: { [dateString: string]: number };

5
apps/api/src/app/portfolio/calculator/twr/portfolio-calculator.ts

@ -4,12 +4,17 @@ import {
SymbolMetrics
} from '@ghostfolio/common/interfaces';
import { PortfolioSnapshot } from '@ghostfolio/common/models';
import { PerformanceCalculationType } from '@ghostfolio/common/types/performance-calculation-type.type';
export class TwrPortfolioCalculator extends PortfolioCalculator {
protected calculateOverallPerformance(): PortfolioSnapshot {
throw new Error('Method not implemented.');
}
protected getPerformanceCalculationType() {
return PerformanceCalculationType.TWR;
}
protected getSymbolMetrics({}: {
end: Date;
exchangeRates: { [dateString: string]: number };

Loading…
Cancel
Save