Browse Source

Move interfaces

* PortfolioPerformance
* Position
pull/100/head
Thomas 4 years ago
parent
commit
ebfce73985
  1. 8
      apps/api/src/app/portfolio/portfolio.controller.ts
  2. 6
      apps/api/src/app/portfolio/portfolio.service.ts
  3. 5
      apps/api/src/models/interfaces/portfolio.interface.ts
  4. 8
      apps/api/src/models/portfolio.ts
  5. 2
      apps/client/src/app/components/portfolio-performance-summary/portfolio-performance-summary.component.ts
  6. 2
      apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts
  7. 2
      apps/client/src/app/pages/home/home-page.component.ts
  8. 2
      apps/client/src/app/services/data.service.ts
  9. 11
      libs/helper/src/lib/interfaces/index.ts
  10. 13
      libs/helper/src/lib/interfaces/portfolio-item.interface.ts
  11. 0
      libs/helper/src/lib/interfaces/portfolio-performance.interface.ts
  12. 12
      libs/helper/src/lib/interfaces/position.interface.ts

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

@ -4,6 +4,11 @@ import {
} from '@ghostfolio/api/helper/object.helper'; } from '@ghostfolio/api/helper/object.helper';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service';
import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service';
import {
PortfolioItem,
PortfolioOverview,
PortfolioPerformance
} from '@ghostfolio/helper/interfaces';
import { import {
getPermissions, getPermissions,
hasPermission, hasPermission,
@ -26,9 +31,6 @@ import { Response } from 'express';
import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { StatusCodes, getReasonPhrase } from 'http-status-codes';
import { RequestWithUser } from '../interfaces/request-with-user.type'; import { RequestWithUser } from '../interfaces/request-with-user.type';
import { PortfolioItem } from './interfaces/portfolio-item.interface';
import { PortfolioOverview } from './interfaces/portfolio-overview.interface';
import { PortfolioPerformance } from './interfaces/portfolio-performance.interface';
import { import {
HistoricalDataItem, HistoricalDataItem,
PortfolioPositionDetail PortfolioPositionDetail

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

@ -5,6 +5,10 @@ import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-
import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service'; import { ImpersonationService } from '@ghostfolio/api/services/impersonation.service';
import { IOrder } from '@ghostfolio/api/services/interfaces/interfaces'; import { IOrder } from '@ghostfolio/api/services/interfaces/interfaces';
import { RulesService } from '@ghostfolio/api/services/rules.service'; import { RulesService } from '@ghostfolio/api/services/rules.service';
import {
PortfolioItem,
PortfolioOverview
} from '@ghostfolio/helper/interfaces';
import { Inject, Injectable } from '@nestjs/common'; import { Inject, Injectable } from '@nestjs/common';
import { REQUEST } from '@nestjs/core'; import { REQUEST } from '@nestjs/core';
import { import {
@ -27,8 +31,6 @@ import { OrderService } from '../order/order.service';
import { RedisCacheService } from '../redis-cache/redis-cache.service'; import { RedisCacheService } from '../redis-cache/redis-cache.service';
import { UserService } from '../user/user.service'; import { UserService } from '../user/user.service';
import { DateRange } from './interfaces/date-range.type'; import { DateRange } from './interfaces/date-range.type';
import { PortfolioItem } from './interfaces/portfolio-item.interface';
import { PortfolioOverview } from './interfaces/portfolio-overview.interface';
import { import {
HistoricalDataItem, HistoricalDataItem,
PortfolioPositionDetail PortfolioPositionDetail

5
apps/api/src/models/interfaces/portfolio.interface.ts

@ -1,7 +1,4 @@
import { import { PortfolioItem, Position } from '@ghostfolio/helper/interfaces';
PortfolioItem,
Position
} from '@ghostfolio/api/app/portfolio/interfaces/portfolio-item.interface';
import { Order } from '../order'; import { Order } from '../order';

8
apps/api/src/models/portfolio.ts

@ -1,9 +1,10 @@
import { UNKNOWN_KEY } from '@ghostfolio/helper/config';
import { getToday, getYesterday, resetHours } from '@ghostfolio/helper/helper';
import { import {
PortfolioItem, PortfolioItem,
PortfolioPerformance,
Position Position
} from '@ghostfolio/api/app/portfolio/interfaces/portfolio-item.interface'; } from '@ghostfolio/helper/interfaces';
import { UNKNOWN_KEY } from '@ghostfolio/helper/config';
import { getToday, getYesterday, resetHours } from '@ghostfolio/helper/helper';
import { import {
add, add,
format, format,
@ -26,7 +27,6 @@ import * as roundTo from 'round-to';
import { UserWithSettings } from '../app/interfaces/user-with-settings'; import { UserWithSettings } from '../app/interfaces/user-with-settings';
import { OrderWithAccount } from '../app/order/interfaces/order-with-account.type'; import { OrderWithAccount } from '../app/order/interfaces/order-with-account.type';
import { DateRange } from '../app/portfolio/interfaces/date-range.type'; import { DateRange } from '../app/portfolio/interfaces/date-range.type';
import { PortfolioPerformance } from '../app/portfolio/interfaces/portfolio-performance.interface';
import { PortfolioPosition } from '../app/portfolio/interfaces/portfolio-position.interface'; import { PortfolioPosition } from '../app/portfolio/interfaces/portfolio-position.interface';
import { PortfolioReport } from '../app/portfolio/interfaces/portfolio-report.interface'; import { PortfolioReport } from '../app/portfolio/interfaces/portfolio-report.interface';
import { DataProviderService } from '../services/data-provider.service'; import { DataProviderService } from '../services/data-provider.service';

2
apps/client/src/app/components/portfolio-performance-summary/portfolio-performance-summary.component.ts

@ -7,7 +7,7 @@ import {
OnInit, OnInit,
ViewChild ViewChild
} from '@angular/core'; } from '@angular/core';
import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface'; import { PortfolioPerformance } from '@ghostfolio/helper/interfaces';
import { Currency } from '@prisma/client'; import { Currency } from '@prisma/client';
import { CountUp } from 'countup.js'; import { CountUp } from 'countup.js';
import { isNumber } from 'lodash'; import { isNumber } from 'lodash';

2
apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts

@ -4,7 +4,7 @@ import {
Input, Input,
OnInit OnInit
} from '@angular/core'; } from '@angular/core';
import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface'; import { PortfolioPerformance } from '@ghostfolio/helper/interfaces';
import { Currency } from '@prisma/client'; import { Currency } from '@prisma/client';
@Component({ @Component({

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

@ -2,7 +2,6 @@ import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { DateRange } from '@ghostfolio/api/app/portfolio/interfaces/date-range.type'; import { DateRange } from '@ghostfolio/api/app/portfolio/interfaces/date-range.type';
import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface';
import { PortfolioPosition } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-position.interface'; import { PortfolioPosition } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-position.interface';
import { User } from '@ghostfolio/api/app/user/interfaces/user.interface'; import { User } from '@ghostfolio/api/app/user/interfaces/user.interface';
import { LineChartItem } from '@ghostfolio/client/components/line-chart/interfaces/line-chart.interface'; import { LineChartItem } from '@ghostfolio/client/components/line-chart/interfaces/line-chart.interface';
@ -15,6 +14,7 @@ import {
SettingsStorageService SettingsStorageService
} from '@ghostfolio/client/services/settings-storage.service'; } from '@ghostfolio/client/services/settings-storage.service';
import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service';
import { PortfolioPerformance } from '@ghostfolio/helper/interfaces';
import { PortfolioOverview } from '@ghostfolio/helper/interfaces'; import { PortfolioOverview } from '@ghostfolio/helper/interfaces';
import { hasPermission, permissions } from '@ghostfolio/helper/permissions'; import { hasPermission, permissions } from '@ghostfolio/helper/permissions';
import { DeviceDetectorService } from 'ngx-device-detector'; import { DeviceDetectorService } from 'ngx-device-detector';

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

@ -5,7 +5,6 @@ import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto
import { AdminData } from '@ghostfolio/api/app/admin/interfaces/admin-data.interface'; import { AdminData } from '@ghostfolio/api/app/admin/interfaces/admin-data.interface';
import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto';
import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto';
import { PortfolioPerformance } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-performance.interface';
import { import {
HistoricalDataItem, HistoricalDataItem,
PortfolioPositionDetail PortfolioPositionDetail
@ -17,6 +16,7 @@ import { SymbolItem } from '@ghostfolio/api/app/symbol/interfaces/symbol-item.in
import { UserItem } from '@ghostfolio/api/app/user/interfaces/user-item.interface'; import { UserItem } from '@ghostfolio/api/app/user/interfaces/user-item.interface';
import { User } from '@ghostfolio/api/app/user/interfaces/user.interface'; import { User } from '@ghostfolio/api/app/user/interfaces/user.interface';
import { UpdateUserSettingsDto } from '@ghostfolio/api/app/user/update-user-settings.dto'; import { UpdateUserSettingsDto } from '@ghostfolio/api/app/user/update-user-settings.dto';
import { PortfolioPerformance } from '@ghostfolio/helper/interfaces';
import { InfoItem } from '@ghostfolio/helper/interfaces'; import { InfoItem } from '@ghostfolio/helper/interfaces';
import { PortfolioItem } from '@ghostfolio/helper/interfaces'; import { PortfolioItem } from '@ghostfolio/helper/interfaces';
import { PortfolioOverview } from '@ghostfolio/helper/interfaces'; import { PortfolioOverview } from '@ghostfolio/helper/interfaces';

11
libs/helper/src/lib/interfaces/index.ts

@ -2,5 +2,14 @@ import { Access } from './access.interface';
import { InfoItem } from './info-item.interface'; import { InfoItem } from './info-item.interface';
import { PortfolioItem } from './portfolio-item.interface'; import { PortfolioItem } from './portfolio-item.interface';
import { PortfolioOverview } from './portfolio-overview.interface'; import { PortfolioOverview } from './portfolio-overview.interface';
import { PortfolioPerformance } from './portfolio-performance.interface';
import { Position } from './position.interface';
export { Access, InfoItem, PortfolioItem, PortfolioOverview }; export {
Access,
InfoItem,
PortfolioItem,
PortfolioOverview,
PortfolioPerformance,
Position
};

13
libs/helper/src/lib/interfaces/portfolio-item.interface.ts

@ -1,4 +1,4 @@
import { Currency } from '@prisma/client'; import { Position } from '@ghostfolio/helper/interfaces';
export interface PortfolioItem { export interface PortfolioItem {
date: string; date: string;
@ -7,14 +7,3 @@ export interface PortfolioItem {
positions: { [symbol: string]: Position }; positions: { [symbol: string]: Position };
value: number; value: number;
} }
export interface Position {
averagePrice: number;
currency: Currency;
firstBuyDate: string;
investment: number;
investmentInOriginalCurrency?: number;
marketPrice?: number;
quantity: number;
transactionCount: number;
}

0
apps/api/src/app/portfolio/interfaces/portfolio-performance.interface.ts → libs/helper/src/lib/interfaces/portfolio-performance.interface.ts

12
libs/helper/src/lib/interfaces/position.interface.ts

@ -0,0 +1,12 @@
import { Currency } from '@prisma/client';
export interface Position {
averagePrice: number;
currency: Currency;
firstBuyDate: string;
investment: number;
investmentInOriginalCurrency?: number;
marketPrice?: number;
quantity: number;
transactionCount: number;
}
Loading…
Cancel
Save