Browse Source

Move to api/portfolio/chart

pull/428/head
Thomas 4 years ago
parent
commit
c2d2653f83
  1. 14
      apps/api/src/app/portfolio/portfolio.controller.ts
  2. 2
      apps/client/src/app/pages/home/home-page.component.ts
  3. 2
      apps/client/src/app/pages/zen/zen-page.component.ts
  4. 3
      apps/client/src/app/services/data.service.ts
  5. 2
      libs/common/src/lib/interfaces/index.ts
  6. 7
      libs/common/src/lib/interfaces/portfolio-chart.interface.ts
  7. 2
      libs/common/src/lib/interfaces/portfolio-performance.interface.ts

14
apps/api/src/app/portfolio/portfolio.controller.ts

@ -8,6 +8,7 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration.ser
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service';
import { baseCurrency } from '@ghostfolio/common/config';
import {
PortfolioChart,
PortfolioDetails,
PortfolioPerformance,
PortfolioPublicDetails,
@ -32,10 +33,7 @@ import { AuthGuard } from '@nestjs/passport';
import { Response } from 'express';
import { StatusCodes, getReasonPhrase } from 'http-status-codes';
import {
HistoricalDataItem,
PortfolioPositionDetail
} from './interfaces/portfolio-position-detail.interface';
import { PortfolioPositionDetail } from './interfaces/portfolio-position-detail.interface';
import { PortfolioPositions } from './interfaces/portfolio-positions.interface';
import { PortfolioService } from './portfolio.service';
@ -92,7 +90,7 @@ export class PortfolioController {
@Headers('impersonation-id') impersonationId,
@Query('range') range,
@Res() res: Response
): Promise<HistoricalDataItem[]> {
): Promise<PortfolioChart> {
let chartData = await this.portfolioService.getChart(
impersonationId,
range
@ -130,7 +128,11 @@ export class PortfolioController {
});
}
return <any>res.json(chartData);
return <any>res.json({
isAllTimeHigh: true,
isAllTimeLow: false,
chart: chartData
});
}
@Get('details')

2
apps/client/src/app/pages/home/home-page.component.ts

@ -166,7 +166,7 @@ export class HomePageComponent implements OnDestroy, OnInit {
.fetchChart({ range: this.dateRange })
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe((chartData) => {
this.historicalDataItems = chartData.map((chartDataItem) => {
this.historicalDataItems = chartData.chart.map((chartDataItem) => {
return {
date: chartDataItem.date,
value: chartDataItem.value

2
apps/client/src/app/pages/zen/zen-page.component.ts

@ -114,7 +114,7 @@ export class ZenPageComponent implements AfterViewInit, OnDestroy, OnInit {
.fetchChart({ range: this.dateRange })
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe((chartData) => {
this.historicalDataItems = chartData.map((chartDataItem) => {
this.historicalDataItems = chartData.chart.map((chartDataItem) => {
return {
date: chartDataItem.date,
value: chartDataItem.value

3
apps/client/src/app/services/data.service.ts

@ -21,6 +21,7 @@ import {
AdminData,
Export,
InfoItem,
PortfolioChart,
PortfolioDetails,
PortfolioPerformance,
PortfolioPublicDetails,
@ -91,7 +92,7 @@ export class DataService {
}
public fetchChart({ range }: { range: DateRange }) {
return this.http.get<HistoricalDataItem[]>('/api/portfolio/chart', {
return this.http.get<PortfolioChart>('/api/portfolio/chart', {
params: { range }
});
}

2
libs/common/src/lib/interfaces/index.ts

@ -3,6 +3,7 @@ import { Accounts } from './accounts.interface';
import { AdminData } from './admin-data.interface';
import { Export } from './export.interface';
import { InfoItem } from './info-item.interface';
import { PortfolioChart } from './portfolio-chart.interface';
import { PortfolioDetails } from './portfolio-details.interface';
import { PortfolioItem } from './portfolio-item.interface';
import { PortfolioOverview } from './portfolio-overview.interface';
@ -24,6 +25,7 @@ export {
AdminData,
Export,
InfoItem,
PortfolioChart,
PortfolioDetails,
PortfolioItem,
PortfolioOverview,

7
libs/common/src/lib/interfaces/portfolio-chart.interface.ts

@ -0,0 +1,7 @@
import { HistoricalDataItem } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-position-detail.interface';
export interface PortfolioChart {
isAllTimeHigh: boolean;
isAllTimeLow: boolean;
chart: HistoricalDataItem[];
}

2
libs/common/src/lib/interfaces/portfolio-performance.interface.ts

@ -5,6 +5,4 @@ export interface PortfolioPerformance {
currentNetPerformance: number;
currentNetPerformancePercent: number;
currentValue: number;
isAllTimeHigh: boolean;
isAllTimeLow: boolean;
}

Loading…
Cancel
Save