Browse Source
Bugfix/fix activities import for manual data source (#2923 )
* Fix import
* Update changelog
pull/2930/head
Thomas Kaul
1 year ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
39 additions and
22 deletions
CHANGELOG.md
apps/api/src/app/import/import.service.ts
apps/api/src/services/data-provider/manual/manual.service.ts
@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Fixed the import for activities with `MANUAL` data source and type `FEE` , `INTEREST` , `ITEM` or `LIABILITY`
- Removed holdings with incomplete data from the _Top 3_ and _Bottom 3_ performers on the analysis page
## 2.44.0 - 2024-01-24
@ -575,7 +575,7 @@ export class ImportService {
for ( const [
index ,
{ currency , dataSource , symbol }
{ currency , dataSource , symbol , type }
] of uniqueActivitiesDto . entries ( ) ) {
if ( ! this . configurationService . get ( 'DATA_SOURCES' ) . includes ( dataSource ) ) {
throw new Error (
@ -583,12 +583,16 @@ export class ImportService {
) ;
}
const assetProfile = (
const assetProfile = {
currency ,
. . . (
await this . dataProviderService . getAssetProfiles ( [
{ dataSource , symbol }
] )
) ? . [ symbol ] ;
) ? . [ symbol ]
} ;
if ( type === 'BUY' || type === 'DIVIDEND' || type === 'SELL' ) {
if ( ! assetProfile ? . name ) {
throw new Error (
` activities. ${ index } .symbol (" ${ symbol } ") is not valid for the specified data source (" ${ dataSource } ") `
@ -606,6 +610,7 @@ export class ImportService {
` activities. ${ index } .currency (" ${ currency } ") does not match with " ${ assetProfile . currency } " and no exchange rate is available from " ${ currency } " to " ${ assetProfile . currency } " `
) ;
}
}
assetProfiles [ getAssetProfileIdentifier ( { dataSource , symbol } ) ] =
assetProfile ;
@ -42,10 +42,21 @@ export class ManualService implements DataProviderInterface {
public async getAssetProfile (
aSymbol : string
) : Promise < Partial < SymbolProfile > > {
return {
const assetProfile : Partial < SymbolProfile > = {
dataSource : this.getName ( ) ,
symbol : aSymbol
} ;
const [ symbolProfile ] = await this . symbolProfileService . getSymbolProfiles ( [
{ dataSource : this.getName ( ) , symbol : aSymbol }
] ) ;
if ( symbolProfile ) {
assetProfile . currency = symbolProfile . currency ;
assetProfile . name = symbolProfile . name ;
}
return assetProfile ;
}
public async getDividends ( { } : GetDividendsParams ) {