From e1cdce4a935b079c06b773730a8a6bfab22de247 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Mon, 8 Mar 2021 23:14:07 +0800 Subject: [PATCH] verify whether currency code is in known list --- pkg/exchangerates/euro_central_bank_datasource.go | 6 ++++++ pkg/validators/currency.go | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/exchangerates/euro_central_bank_datasource.go b/pkg/exchangerates/euro_central_bank_datasource.go index 79c30943..e529adc2 100644 --- a/pkg/exchangerates/euro_central_bank_datasource.go +++ b/pkg/exchangerates/euro_central_bank_datasource.go @@ -8,6 +8,7 @@ import ( "github.com/mayswind/lab/pkg/errs" "github.com/mayswind/lab/pkg/log" "github.com/mayswind/lab/pkg/models" + "github.com/mayswind/lab/pkg/validators" ) const euroCentralBankExchangeRateUrl = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml" @@ -59,6 +60,11 @@ func (e *EuroCentralBankExchangeRateData) ToLatestExchangeRateResponse(c *core.C for i := 0; i < len(latestEuroCentralBankExchangeRate.ExchangeRates); i++ { exchangeRate := latestEuroCentralBankExchangeRate.ExchangeRates[i] + + if _, exists := validators.AllCurrencyNames[exchangeRate.Currency]; !exists { + continue + } + exchangeRates = append(exchangeRates, exchangeRate.ToLatestExchangeRate()) } diff --git a/pkg/validators/currency.go b/pkg/validators/currency.go index 677b9c9f..d1a29a83 100644 --- a/pkg/validators/currency.go +++ b/pkg/validators/currency.go @@ -8,7 +8,7 @@ import ( const ParentAccountCurrencyPlaceholder = "---" // ISO 4217 -var allCurrencyNames = map[string]bool{ +var AllCurrencyNames = map[string]bool{ "AED": true, //UAE Dirham "AFN": true, //Afghani "ALL": true, //Lek @@ -175,7 +175,7 @@ func ValidCurrency(fl validator.FieldLevel) bool { return true } - _, ok := allCurrencyNames[value] + _, ok := AllCurrencyNames[value] return ok }