diff --git a/pkg/exchangerates/http_exchange_rates_datasource.go b/pkg/exchangerates/http_exchange_rates_datasource.go index c4fb59a8..ee06b329 100644 --- a/pkg/exchangerates/http_exchange_rates_datasource.go +++ b/pkg/exchangerates/http_exchange_rates_datasource.go @@ -2,7 +2,6 @@ package exchangerates import ( "crypto/tls" - "fmt" "io" "net/http" "sort" @@ -59,7 +58,7 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex req := requests[i] if len(req.Header.Values("User-Agent")) < 1 { - req.Header.Set("User-Agent", fmt.Sprintf("ezBookkeeping/%s", settings.Version)) + req.Header.Set("User-Agent", settings.GetUserAgent()) } else if req.Header.Get("User-Agent") == "" { req.Header.Del("User-Agent") } @@ -71,16 +70,16 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex return nil, errs.ErrFailedToRequestRemoteApi } - if resp.StatusCode != 200 { - log.Errorf(c, "[http_exchange_rates_datasource.GetLatestExchangeRates] failed to get latest exchange rate data response for user \"uid:%d\", because response code is not 200", uid) - return nil, errs.ErrFailedToRequestRemoteApi - } - defer resp.Body.Close() body, err := io.ReadAll(resp.Body) log.Debugf(c, "[http_exchange_rates_datasource.GetLatestExchangeRates] response#%d is %s", i, body) + if resp.StatusCode != 200 { + log.Errorf(c, "[http_exchange_rates_datasource.GetLatestExchangeRates] failed to get latest exchange rate data response for user \"uid:%d\", because response code is not %d", uid, resp.StatusCode) + return nil, errs.ErrFailedToRequestRemoteApi + } + exchangeRateResp, err := e.dataSource.Parse(c, body) if err != nil { diff --git a/pkg/settings/setting_container.go b/pkg/settings/setting_container.go index f73cb884..24502cec 100644 --- a/pkg/settings/setting_container.go +++ b/pkg/settings/setting_container.go @@ -1,5 +1,7 @@ package settings +import "fmt" + // ConfigContainer contains the current setting config type ConfigContainer struct { current *Config @@ -22,3 +24,7 @@ func SetCurrentConfig(config *Config) { func (c *ConfigContainer) GetCurrentConfig() *Config { return c.current } + +func GetUserAgent() string { + return fmt.Sprintf("ezBookkeeping/%s", Version) +}