Browse Source

Refactoring

pull/3084/head
Thomas Kaul 2 years ago
parent
commit
9e0281c627
  1. 13
      apps/api/src/app/order/order.service.ts
  2. 10
      apps/api/src/app/portfolio/current-rate.service.ts
  3. 14
      apps/api/src/services/data-provider/manual/manual.service.ts

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

@ -8,7 +8,7 @@ import {
GATHER_ASSET_PROFILE_PROCESS_OPTIONS
} from '@ghostfolio/common/config';
import { getAssetProfileIdentifier } from '@ghostfolio/common/helper';
import { Filter } from '@ghostfolio/common/interfaces';
import { Filter, UniqueAsset } from '@ghostfolio/common/interfaces';
import { OrderWithAccount } from '@ghostfolio/common/types';
import { Injectable } from '@nestjs/common';
@ -200,6 +200,17 @@ export class OrderService {
return count;
}
public async getLatestOrder({ dataSource, symbol }: UniqueAsset) {
return this.prismaService.order.findFirst({
orderBy: {
date: 'desc'
},
where: {
SymbolProfile: { dataSource, symbol }
}
});
}
public async getOrders({
filters,
includeDrafts = false,

10
apps/api/src/app/portfolio/current-rate.service.ts

@ -1,3 +1,4 @@
import { OrderService } from '@ghostfolio/api/app/order/order.service';
import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service';
import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service';
import { resetHours } from '@ghostfolio/common/helper';
@ -22,6 +23,7 @@ export class CurrentRateService {
public constructor(
private readonly dataProviderService: DataProviderService,
private readonly marketDataService: MarketDataService,
private readonly orderService: OrderService,
@Inject(REQUEST) private readonly request: RequestWithUser
) {}
@ -121,11 +123,17 @@ export class CurrentRateService {
});
if (!value) {
// Fallback to unit price of latest activity
const latestActivity = await this.orderService.getLatestOrder({
dataSource,
symbol
});
value = {
dataSource,
symbol,
date: today,
marketPrice: 0
marketPrice: latestActivity?.unitPrice ?? 0
};
response.values.push(value);

14
apps/api/src/services/data-provider/manual/manual.service.ts

@ -171,20 +171,6 @@ export class ManualService implements DataProviderInterface {
return marketDataItem.symbol === symbol;
})?.marketPrice;
if (!marketPrice) {
// Fallback to unit price of last activity
const lastActivity = await this.prismaService.order.findFirst({
orderBy: {
date: 'desc'
},
where: {
SymbolProfile: { symbol }
}
});
marketPrice = lastActivity?.unitPrice;
}
response[symbol] = {
currency,
marketPrice,

Loading…
Cancel
Save