Browse Source

Feature/improve currency code validation (#4598)

* Improve currency code validation

* Update changelog
pull/4603/head
Thomas Kaul 5 days ago
committed by GitHub
parent
commit
3b59d7989a
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 5
      CHANGELOG.md
  2. 11
      apps/api/src/validators/is-currency-code.ts

5
CHANGELOG.md

@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
### Changed
- Improved the error message of the currency code validation
- Tightened the currency code validation by requiring uppercase letters
### Fixed
- Improved the file selector of the activities import functionality to accept case-insensitive file extensions (`.CSV` and `.JSON`)

11
apps/api/src/validators/is-currency-code.ts

@ -25,19 +25,24 @@ export class IsExtendedCurrencyConstraint
implements ValidatorConstraintInterface
{
public defaultMessage() {
return '$value must be a valid ISO4217 currency code';
return '$property must be a valid ISO4217 currency code';
}
public validate(currency: any) {
// Return true if currency is a standard ISO 4217 code or a derived currency
return (
isISO4217CurrencyCode(currency) ||
this.isUpperCase(currency) &&
(isISO4217CurrencyCode(currency) ||
[
...DERIVED_CURRENCIES.map((derivedCurrency) => {
return derivedCurrency.currency;
}),
'USX'
].includes(currency)
].includes(currency))
);
}
private isUpperCase(aString: string) {
return aString === aString?.toUpperCase();
}
}

Loading…
Cancel
Save