Browse Source

Add fallback to default account if account id is invalid

pull/709/head
Thomas 3 years ago
parent
commit
4064963888
  1. 1
      apps/api/src/app/account/account.module.ts
  2. 2
      apps/api/src/app/import/import.module.ts
  3. 10
      apps/api/src/app/import/import.service.ts

1
apps/api/src/app/account/account.module.ts

@ -13,6 +13,7 @@ import { AccountService } from './account.service';
@Module({
controllers: [AccountController],
exports: [AccountService],
imports: [
ConfigurationModule,
DataProviderModule,

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

@ -6,6 +6,7 @@ import { DataGatheringModule } from '@ghostfolio/api/services/data-gathering.mod
import { DataProviderModule } from '@ghostfolio/api/services/data-provider/data-provider.module';
import { PrismaModule } from '@ghostfolio/api/services/prisma.module';
import { Module } from '@nestjs/common';
import { AccountModule } from '@ghostfolio/api/app/account/account.module';
import { ImportController } from './import.controller';
import { ImportService } from './import.service';
@ -13,6 +14,7 @@ import { ImportService } from './import.service';
@Module({
controllers: [ImportController],
imports: [
AccountModule,
CacheModule,
ConfigurationModule,
DataGatheringModule,

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

@ -4,10 +4,12 @@ import { DataProviderService } from '@ghostfolio/api/services/data-provider/data
import { Injectable } from '@nestjs/common';
import { Order } from '@prisma/client';
import { isSameDay, parseISO } from 'date-fns';
import { AccountService } from '@ghostfolio/api/app/account/account.service';
@Injectable()
export class ImportService {
public constructor(
private readonly accountService: AccountService,
private readonly configurationService: ConfigurationService,
private readonly dataProviderService: DataProviderService,
private readonly orderService: OrderService
@ -32,6 +34,12 @@ export class ImportService {
await this.validateOrders({ orders, userId });
const accountIds = (await this.accountService.getAccounts(userId)).map(
(account) => {
return account.id;
}
);
for (const {
accountId,
currency,
@ -44,7 +52,6 @@ export class ImportService {
unitPrice
} of orders) {
await this.orderService.createOrder({
accountId,
currency,
dataSource,
fee,
@ -53,6 +60,7 @@ export class ImportService {
type,
unitPrice,
userId,
accountId: accountIds.includes(accountId) ? accountId : undefined,
date: parseISO(<string>(<unknown>date)),
SymbolProfile: {
connectOrCreate: {

Loading…
Cancel
Save