Feature/improve asset profile validation in activities import for manual data source (#2886)

* Improve asset profile validation for MANUAL data source

* Update changelog
pull/2887/head
Thomas Kaul 12 months ago committed by GitHub
parent d46de0a15e
commit bff60ddbe0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added the holdings table to the account detail dialog - Added the holdings table to the account detail dialog
- Validated the currency of the search results in the _EOD Historical Data_ service - Validated the currency of the search results in the _EOD Historical Data_ service
### Changed
- Improved the asset profile validation for `MANUAL` data source in the activities import
## 2.40.0 - 2024-01-15 ## 2.40.0 - 2024-01-15
### Changed ### Changed

@ -583,34 +583,32 @@ export class ImportService {
); );
} }
if (dataSource !== 'MANUAL') { const assetProfile = (
const assetProfile = ( await this.dataProviderService.getAssetProfiles([
await this.dataProviderService.getAssetProfiles([ { dataSource, symbol }
{ dataSource, symbol } ])
]) )?.[symbol];
)?.[symbol];
if (!assetProfile?.name) {
throw new Error(
`activities.${index}.symbol ("${symbol}") is not valid for the specified data source ("${dataSource}")`
);
}
if ( if (!assetProfile?.name) {
assetProfile.currency !== currency && throw new Error(
!this.exchangeRateDataService.hasCurrencyPair( `activities.${index}.symbol ("${symbol}") is not valid for the specified data source ("${dataSource}")`
currency, );
assetProfile.currency }
)
) {
throw new Error(
`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 })] = if (
assetProfile; assetProfile.currency !== currency &&
!this.exchangeRateDataService.hasCurrencyPair(
currency,
assetProfile.currency
)
) {
throw new Error(
`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;
} }
return assetProfiles; return assetProfiles;

Loading…
Cancel
Save