Browse Source

Get date range from position

pull/1560/head
Thomas 3 years ago
parent
commit
ad7b47b244
  1. 2
      apps/api/src/app/import/import.module.ts
  2. 18
      apps/api/src/app/import/import.service.ts

2
apps/api/src/app/import/import.module.ts

@ -1,6 +1,7 @@
import { AccountModule } from '@ghostfolio/api/app/account/account.module';
import { CacheModule } from '@ghostfolio/api/app/cache/cache.module';
import { OrderModule } from '@ghostfolio/api/app/order/order.module';
import { PortfolioModule } from '@ghostfolio/api/app/portfolio/portfolio.module';
import { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module';
import { ConfigurationModule } from '@ghostfolio/api/services/configuration.module';
import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering.module';
@ -23,6 +24,7 @@ import { ImportService } from './import.service';
DataProviderModule,
ExchangeRateDataModule,
OrderModule,
PortfolioModule,
PrismaModule,
RedisCacheModule,
SymbolProfileModule

18
apps/api/src/app/import/import.service.ts

@ -2,6 +2,7 @@ import { AccountService } from '@ghostfolio/api/app/account/account.service';
import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto';
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface';
import { OrderService } from '@ghostfolio/api/app/order/order.service';
import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service';
import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data.service';
import { SymbolProfileService } from '@ghostfolio/api/services/symbol-profile.service';
@ -11,7 +12,7 @@ import { OrderWithAccount } from '@ghostfolio/common/types';
import { Injectable } from '@nestjs/common';
import { SymbolProfile } from '@prisma/client';
import Big from 'big.js';
import { endOfToday, isAfter, isSameDay, parseISO, subYears } from 'date-fns';
import { endOfToday, isAfter, isSameDay, parseISO } from 'date-fns';
import { v4 as uuidv4 } from 'uuid';
@Injectable()
@ -21,6 +22,7 @@ export class ImportService {
private readonly dataProviderService: DataProviderService,
private readonly exchangeRateDataService: ExchangeRateDataService,
private readonly orderService: OrderService,
private readonly portfolioService: PortfolioService,
private readonly symbolProfileService: SymbolProfileService
) {}
@ -29,9 +31,13 @@ export class ImportService {
symbol
}: UniqueAsset): Promise<ImportResponse> {
try {
const date = new Date();
const { firstBuyDate } = await this.portfolioService.getPosition(
dataSource,
undefined,
symbol
);
const [[assetProfile], historicalData] = await Promise.all([
const [[assetProfile], dividends] = await Promise.all([
this.symbolProfileService.getSymbolProfiles([
{
dataSource,
@ -41,14 +47,14 @@ export class ImportService {
await this.dataProviderService.getDividends({
dataSource,
symbol,
from: subYears(date, 5),
from: parseDate(firstBuyDate),
granularity: 'day',
to: date
to: new Date()
})
]);
return {
activities: Object.entries(historicalData).map(
activities: Object.entries(dividends).map(
([dateString, historicalDataItem]) => {
return {
accountId: undefined,

Loading…
Cancel
Save