diff options
author | Antoine A <> | 2024-02-20 13:47:38 +0100 |
---|---|---|
committer | Antoine A <> | 2024-02-20 13:47:38 +0100 |
commit | d87355ed5f7876dee4534ca9a7e8af3cb429bc2f (patch) | |
tree | 58bf6eb531821e2b706e3c80da9fdfcfa2e1c948 | |
parent | 59c7655c0a8b020733a02b5993a24eb5518d9382 (diff) | |
download | libeufin-d87355ed5f7876dee4534ca9a7e8af3cb429bc2f.tar.gz libeufin-d87355ed5f7876dee4534ca9a7e8af3cb429bc2f.tar.bz2 libeufin-d87355ed5f7876dee4534ca9a7e8af3cb429bc2f.zip |
Use default currency specification if missing
-rw-r--r-- | bank/src/main/kotlin/tech/libeufin/bank/Config.kt | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/Config.kt b/bank/src/main/kotlin/tech/libeufin/bank/Config.kt index cba29656..8bceb104 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/Config.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/Config.kt @@ -154,7 +154,16 @@ fun String.notEmptyOrNull(): String? = if (isEmpty()) null else this fun TalerConfig.currencySpecificationFor(currency: String): CurrencySpecification = sections.find { it.startsWith("CURRENCY-") && requireBoolean(it, "enabled") && requireString(it, "code") == currency - }?.let { loadCurrencySpecification(it) } ?: throw TalerConfigError.generic("missing currency specification for $currency") + }?.let { loadCurrencySpecification(it) } ?: run { + logger.warn("Missing currency specification for $currency, using sane defaults") + CurrencySpecification( + name = currency, + num_fractional_input_digits = 2, + num_fractional_normal_digits = 2, + num_fractional_trailing_zero_digits = 2, + alt_unit_names = mapOf("0" to currency) + ) + } private fun TalerConfig.loadCurrencySpecification(section: String): CurrencySpecification { return CurrencySpecification( @@ -165,7 +174,6 @@ private fun TalerConfig.loadCurrencySpecification(section: String): CurrencySpec alt_unit_names = Json.decodeFromString(requireString(section, "alt_unit_names")) ) } - private fun TalerConfig.amount(section: String, option: String, currency: String): TalerAmount? { val raw = lookupString(section, option) ?: return null val amount = try { |