Feature/extend public api with portfolio performance metrics endpoint (#3762)

* Extend Public API with portfolio performance metrics endpoint

* Update changelog
This commit is contained in:
Thomas Kaul
2024-09-21 10:42:43 +02:00
committed by GitHub
parent 9059d4f971
commit 583c14128b
14 changed files with 275 additions and 111 deletions

View File

@@ -31,7 +31,6 @@ import type { PortfolioItem } from './portfolio-item.interface';
import type { PortfolioOverview } from './portfolio-overview.interface';
import type { PortfolioPerformance } from './portfolio-performance.interface';
import type { PortfolioPosition } from './portfolio-position.interface';
import type { PortfolioPublicDetails } from './portfolio-public-details.interface';
import type { PortfolioReportRule } from './portfolio-report-rule.interface';
import type { PortfolioReport } from './portfolio-report.interface';
import type { PortfolioSummary } from './portfolio-summary.interface';
@@ -44,6 +43,7 @@ import type { ImportResponse } from './responses/import-response.interface';
import type { OAuthResponse } from './responses/oauth-response.interface';
import type { PortfolioHoldingsResponse } from './responses/portfolio-holdings-response.interface';
import type { PortfolioPerformanceResponse } from './responses/portfolio-performance-response.interface';
import type { PublicPortfolioResponse } from './responses/public-portfolio-response.interface';
import type { ScraperConfiguration } from './scraper-configuration.interface';
import type { Statistics } from './statistics.interface';
import type { Subscription } from './subscription.interface';
@@ -91,12 +91,12 @@ export {
PortfolioPerformance,
PortfolioPerformanceResponse,
PortfolioPosition,
PortfolioPublicDetails,
PortfolioReport,
PortfolioReportRule,
PortfolioSummary,
Position,
Product,
PublicPortfolioResponse,
ResponseError,
ScraperConfiguration,
Statistics,

View File

@@ -1,6 +1,6 @@
import { PortfolioPosition } from '@ghostfolio/common/interfaces';
import { PortfolioPosition } from '../portfolio-position.interface';
export interface PortfolioPublicDetails {
export interface PublicPortfolioResponse extends PublicPortfolioResponseV1 {
alias?: string;
hasDetails: boolean;
holdings: {
@@ -22,3 +22,17 @@ export interface PortfolioPublicDetails {
>;
};
}
interface PublicPortfolioResponseV1 {
performance: {
'1d': {
relativeChange: number;
};
max: {
relativeChange: number;
};
ytd: {
relativeChange: number;
};
};
}