diff --git a/pkg/exchangerates/http_exchange_rates_datasource.go b/pkg/exchangerates/common_http_exchange_rates_data_provider.go similarity index 70% rename from pkg/exchangerates/http_exchange_rates_datasource.go rename to pkg/exchangerates/common_http_exchange_rates_data_provider.go index ee06b329..8c79501f 100644 --- a/pkg/exchangerates/http_exchange_rates_datasource.go +++ b/pkg/exchangerates/common_http_exchange_rates_data_provider.go @@ -24,13 +24,13 @@ type HttpExchangeRatesDataSource interface { Parse(c core.Context, content []byte) (*models.LatestExchangeRateResponse, error) } -// CommonHttpExchangeRatesDataSource defines the structure of common http exchange rates data source -type CommonHttpExchangeRatesDataSource struct { - ExchangeRatesDataSource +// CommonHttpExchangeRatesDataProvider defines the structure of common http exchange rates data provider +type CommonHttpExchangeRatesDataProvider struct { + ExchangeRatesDataProvider dataSource HttpExchangeRatesDataSource } -func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) { +func (e *CommonHttpExchangeRatesDataProvider) GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) { transport := http.DefaultTransport.(*http.Transport).Clone() utils.SetProxyUrl(transport, currentConfig.ExchangeRatesProxy) @@ -48,7 +48,7 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex requests, err := e.dataSource.BuildRequests() if err != nil { - log.Errorf(c, "[http_exchange_rates_datasource.GetLatestExchangeRates] failed to build requests for user \"uid:%d\", because %s", uid, err.Error()) + log.Errorf(c, "[common_http_exchange_rates_data_provider.GetLatestExchangeRates] failed to build requests for user \"uid:%d\", because %s", uid, err.Error()) return nil, errs.ErrFailedToRequestRemoteApi } @@ -66,24 +66,24 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex resp, err := client.Do(req) if err != nil { - log.Errorf(c, "[http_exchange_rates_datasource.GetLatestExchangeRates] failed to request latest exchange rate data for user \"uid:%d\", because %s", uid, err.Error()) + log.Errorf(c, "[common_http_exchange_rates_data_provider.GetLatestExchangeRates] failed to request latest exchange rate data for user \"uid:%d\", because %s", uid, err.Error()) 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) + log.Debugf(c, "[common_http_exchange_rates_data_provider.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) + log.Errorf(c, "[common_http_exchange_rates_data_provider.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 { - log.Errorf(c, "[http_exchange_rates_datasource.GetLatestExchangeRates] failed to parse response for user \"uid:%d\", because %s", uid, err.Error()) + log.Errorf(c, "[common_http_exchange_rates_data_provider.GetLatestExchangeRates] failed to parse response for user \"uid:%d\", because %s", uid, err.Error()) return nil, errs.Or(err, errs.ErrFailedToRequestRemoteApi) } @@ -125,8 +125,8 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex return finalExchangeRateResponse, nil } -func newCommonHttpExchangeRatesDataSource(dataSource HttpExchangeRatesDataSource) *CommonHttpExchangeRatesDataSource { - return &CommonHttpExchangeRatesDataSource{ +func newCommonHttpExchangeRatesDataProvider(dataSource HttpExchangeRatesDataSource) *CommonHttpExchangeRatesDataProvider { + return &CommonHttpExchangeRatesDataProvider{ dataSource: dataSource, } } diff --git a/pkg/exchangerates/http_exchange_rates_datasource_test.go b/pkg/exchangerates/common_http_exchange_rates_data_provider_test.go similarity index 100% rename from pkg/exchangerates/http_exchange_rates_datasource_test.go rename to pkg/exchangerates/common_http_exchange_rates_data_provider_test.go diff --git a/pkg/exchangerates/exchange_rates_datasource.go b/pkg/exchangerates/exchange_rates_data_provider.go similarity index 74% rename from pkg/exchangerates/exchange_rates_datasource.go rename to pkg/exchangerates/exchange_rates_data_provider.go index cbe87b31..96a1efaf 100644 --- a/pkg/exchangerates/exchange_rates_datasource.go +++ b/pkg/exchangerates/exchange_rates_data_provider.go @@ -6,8 +6,8 @@ import ( "github.com/mayswind/ezbookkeeping/pkg/settings" ) -// ExchangeRatesDataSource defines the structure of exchange rates data source -type ExchangeRatesDataSource interface { +// ExchangeRatesDataProvider defines the structure of exchange rates data provider +type ExchangeRatesDataProvider interface { // GetLatestExchangeRates returns the common response entities GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) } diff --git a/pkg/exchangerates/exchange_rates_datasource_container.go b/pkg/exchangerates/exchange_rates_data_provider_container.go similarity index 53% rename from pkg/exchangerates/exchange_rates_datasource_container.go rename to pkg/exchangerates/exchange_rates_data_provider_container.go index 1bf12906..9b6427b9 100644 --- a/pkg/exchangerates/exchange_rates_datasource_container.go +++ b/pkg/exchangerates/exchange_rates_data_provider_container.go @@ -7,71 +7,71 @@ import ( "github.com/mayswind/ezbookkeeping/pkg/settings" ) -// ExchangeRatesDataSourceContainer contains the current exchange rates data source -type ExchangeRatesDataSourceContainer struct { - current ExchangeRatesDataSource +// ExchangeRatesDataProviderContainer contains the current exchange rates data provider +type ExchangeRatesDataProviderContainer struct { + current ExchangeRatesDataProvider } -// Initialize a exchange rates data source container singleton instance +// Initialize a exchange rates data provider container singleton instance var ( - Container = &ExchangeRatesDataSourceContainer{} + Container = &ExchangeRatesDataProviderContainer{} ) // InitializeExchangeRatesDataSource initializes the current exchange rates data source according to the config func InitializeExchangeRatesDataSource(config *settings.Config) error { if config.ExchangeRatesDataSource == settings.ReserveBankOfAustraliaDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&ReserveBankOfAustraliaDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&ReserveBankOfAustraliaDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.BankOfCanadaDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&BankOfCanadaDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&BankOfCanadaDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.CzechNationalBankDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&CzechNationalBankDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&CzechNationalBankDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.DanmarksNationalbankDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&DanmarksNationalbankDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&DanmarksNationalbankDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.EuroCentralBankDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&EuroCentralBankDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&EuroCentralBankDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.NationalBankOfGeorgiaDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfGeorgiaDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfGeorgiaDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.CentralBankOfHungaryDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&CentralBankOfHungaryDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&CentralBankOfHungaryDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.BankOfIsraelDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&BankOfIsraelDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&BankOfIsraelDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.CentralBankOfMyanmarDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&CentralBankOfMyanmarDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&CentralBankOfMyanmarDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.NorgesBankDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&NorgesBankDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&NorgesBankDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.NationalBankOfPolandDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfPolandDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfPolandDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.NationalBankOfRomaniaDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfRomaniaDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfRomaniaDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.BankOfRussiaDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&BankOfRussiaDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&BankOfRussiaDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.SwissNationalBankDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&SwissNationalBankDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&SwissNationalBankDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.NationalBankOfUkraineDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfUkraineDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfUkraineDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.CentralBankOfUzbekistanDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&CentralBankOfUzbekistanDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&CentralBankOfUzbekistanDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.InternationalMonetaryFundDataSource { - Container.current = newCommonHttpExchangeRatesDataSource(&InternationalMonetaryFundDataSource{}) + Container.current = newCommonHttpExchangeRatesDataProvider(&InternationalMonetaryFundDataSource{}) return nil } else if config.ExchangeRatesDataSource == settings.UserCustomExchangeRatesDataSource { - Container.current = newUserCustomExchangeRatesDataSource() + Container.current = newUserCustomExchangeRatesDataProvider() return nil } @@ -79,7 +79,7 @@ func InitializeExchangeRatesDataSource(config *settings.Config) error { } // GetLatestExchangeRates returns the latest exchange rates data from the current exchange rates data source -func (e *ExchangeRatesDataSourceContainer) GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) { +func (e *ExchangeRatesDataProviderContainer) GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) { if Container.current == nil { return nil, errs.ErrInvalidExchangeRatesDataSource } diff --git a/pkg/exchangerates/user_custom_datasource.go b/pkg/exchangerates/user_custom_data_provider.go similarity index 75% rename from pkg/exchangerates/user_custom_datasource.go rename to pkg/exchangerates/user_custom_data_provider.go index 6dc9d234..1507173a 100644 --- a/pkg/exchangerates/user_custom_datasource.go +++ b/pkg/exchangerates/user_custom_data_provider.go @@ -15,25 +15,25 @@ import ( const userDataSourceType = "user_custom" -// UserCustomExchangeRatesDataSource defines the structure of user custom exchange rates data source -type UserCustomExchangeRatesDataSource struct { - ExchangeRatesDataSource +// UserCustomExchangeRatesDataProvider defines the structure of user custom exchange rates data provider +type UserCustomExchangeRatesDataProvider struct { + ExchangeRatesDataProvider users *services.UserService userCustomExchangeRates *services.UserCustomExchangeRatesService } -func (e *UserCustomExchangeRatesDataSource) GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) { +func (e *UserCustomExchangeRatesDataProvider) GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) { user, err := e.users.GetUserById(c, uid) if err != nil { - log.Errorf(c, "[user_custom_datasource.GetLatestExchangeRates] failed to get user \"uid:%d\", because %s", uid, err.Error()) + log.Errorf(c, "[user_custom_data_provider.GetLatestExchangeRates] failed to get user \"uid:%d\", because %s", uid, err.Error()) return nil, errs.Or(err, errs.ErrOperationFailed) } customExchangeRates, err := e.userCustomExchangeRates.GetAllCustomExchangeRatesByUid(c, uid) if err != nil { - log.Errorf(c, "[user_custom_datasource.GetLatestExchangeRates] failed to get user custom exchange rates for user \"uid:%d\", because %s", uid, err.Error()) + log.Errorf(c, "[user_custom_data_provider.GetLatestExchangeRates] failed to get user custom exchange rates for user \"uid:%d\", because %s", uid, err.Error()) return nil, errs.Or(err, errs.ErrOperationFailed) } @@ -93,8 +93,8 @@ func (e *UserCustomExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex return finalExchangeRateResponse, nil } -func newUserCustomExchangeRatesDataSource() *UserCustomExchangeRatesDataSource { - return &UserCustomExchangeRatesDataSource{ +func newUserCustomExchangeRatesDataProvider() *UserCustomExchangeRatesDataProvider { + return &UserCustomExchangeRatesDataProvider{ users: services.Users, userCustomExchangeRates: services.UserCustomExchangeRates, }