diff --git a/CHANGELOG.md b/CHANGELOG.md index 8be92b28f..8cf7b7b8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed the allocations by account for non-unique account names +- Added a fallback to the default account if the `accountId` is invalid in the import functionality for activities ## 1.116.0 - 16.02.2022 diff --git a/apps/api/src/app/account/account.module.ts b/apps/api/src/app/account/account.module.ts index 2c11de472..90bf909fc 100644 --- a/apps/api/src/app/account/account.module.ts +++ b/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, diff --git a/apps/api/src/app/import/import.module.ts b/apps/api/src/app/import/import.module.ts index 03ff2d3f8..62d227bf5 100644 --- a/apps/api/src/app/import/import.module.ts +++ b/apps/api/src/app/import/import.module.ts @@ -1,3 +1,4 @@ +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 { RedisCacheModule } from '@ghostfolio/api/app/redis-cache/redis-cache.module'; @@ -13,6 +14,7 @@ import { ImportService } from './import.service'; @Module({ controllers: [ImportController], imports: [ + AccountModule, CacheModule, ConfigurationModule, DataGatheringModule, diff --git a/apps/api/src/app/import/import.service.ts b/apps/api/src/app/import/import.service.ts index c365c22f5..e1683c867 100644 --- a/apps/api/src/app/import/import.service.ts +++ b/apps/api/src/app/import/import.service.ts @@ -1,3 +1,4 @@ +import { AccountService } from '@ghostfolio/api/app/account/account.service'; import { OrderService } from '@ghostfolio/api/app/order/order.service'; import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; @@ -8,6 +9,7 @@ import { isSameDay, parseISO } from 'date-fns'; @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((date)), SymbolProfile: { connectOrCreate: {