renamed structs and interfaces to reduce ambiguity

This commit is contained in:
MaysWind
2025-09-22 22:02:37 +08:00
parent d4fee27a3d
commit 6853bbfb68
5 changed files with 45 additions and 45 deletions
@@ -24,13 +24,13 @@ type HttpExchangeRatesDataSource interface {
Parse(c core.Context, content []byte) (*models.LatestExchangeRateResponse, error) Parse(c core.Context, content []byte) (*models.LatestExchangeRateResponse, error)
} }
// CommonHttpExchangeRatesDataSource defines the structure of common http exchange rates data source // CommonHttpExchangeRatesDataProvider defines the structure of common http exchange rates data provider
type CommonHttpExchangeRatesDataSource struct { type CommonHttpExchangeRatesDataProvider struct {
ExchangeRatesDataSource ExchangeRatesDataProvider
dataSource HttpExchangeRatesDataSource 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() transport := http.DefaultTransport.(*http.Transport).Clone()
utils.SetProxyUrl(transport, currentConfig.ExchangeRatesProxy) utils.SetProxyUrl(transport, currentConfig.ExchangeRatesProxy)
@@ -48,7 +48,7 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex
requests, err := e.dataSource.BuildRequests() requests, err := e.dataSource.BuildRequests()
if err != nil { 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 return nil, errs.ErrFailedToRequestRemoteApi
} }
@@ -66,24 +66,24 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex
resp, err := client.Do(req) resp, err := client.Do(req)
if err != nil { 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 return nil, errs.ErrFailedToRequestRemoteApi
} }
defer resp.Body.Close() defer resp.Body.Close()
body, err := io.ReadAll(resp.Body) 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 { 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 return nil, errs.ErrFailedToRequestRemoteApi
} }
exchangeRateResp, err := e.dataSource.Parse(c, body) exchangeRateResp, err := e.dataSource.Parse(c, body)
if err != nil { 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) return nil, errs.Or(err, errs.ErrFailedToRequestRemoteApi)
} }
@@ -125,8 +125,8 @@ func (e *CommonHttpExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex
return finalExchangeRateResponse, nil return finalExchangeRateResponse, nil
} }
func newCommonHttpExchangeRatesDataSource(dataSource HttpExchangeRatesDataSource) *CommonHttpExchangeRatesDataSource { func newCommonHttpExchangeRatesDataProvider(dataSource HttpExchangeRatesDataSource) *CommonHttpExchangeRatesDataProvider {
return &CommonHttpExchangeRatesDataSource{ return &CommonHttpExchangeRatesDataProvider{
dataSource: dataSource, dataSource: dataSource,
} }
} }
@@ -6,8 +6,8 @@ import (
"github.com/mayswind/ezbookkeeping/pkg/settings" "github.com/mayswind/ezbookkeeping/pkg/settings"
) )
// ExchangeRatesDataSource defines the structure of exchange rates data source // ExchangeRatesDataProvider defines the structure of exchange rates data provider
type ExchangeRatesDataSource interface { type ExchangeRatesDataProvider interface {
// GetLatestExchangeRates returns the common response entities // GetLatestExchangeRates returns the common response entities
GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error) GetLatestExchangeRates(c core.Context, uid int64, currentConfig *settings.Config) (*models.LatestExchangeRateResponse, error)
} }
@@ -7,71 +7,71 @@ import (
"github.com/mayswind/ezbookkeeping/pkg/settings" "github.com/mayswind/ezbookkeeping/pkg/settings"
) )
// ExchangeRatesDataSourceContainer contains the current exchange rates data source // ExchangeRatesDataProviderContainer contains the current exchange rates data provider
type ExchangeRatesDataSourceContainer struct { type ExchangeRatesDataProviderContainer struct {
current ExchangeRatesDataSource current ExchangeRatesDataProvider
} }
// Initialize a exchange rates data source container singleton instance // Initialize a exchange rates data provider container singleton instance
var ( var (
Container = &ExchangeRatesDataSourceContainer{} Container = &ExchangeRatesDataProviderContainer{}
) )
// InitializeExchangeRatesDataSource initializes the current exchange rates data source according to the config // InitializeExchangeRatesDataSource initializes the current exchange rates data source according to the config
func InitializeExchangeRatesDataSource(config *settings.Config) error { func InitializeExchangeRatesDataSource(config *settings.Config) error {
if config.ExchangeRatesDataSource == settings.ReserveBankOfAustraliaDataSource { if config.ExchangeRatesDataSource == settings.ReserveBankOfAustraliaDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&ReserveBankOfAustraliaDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&ReserveBankOfAustraliaDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.BankOfCanadaDataSource { } else if config.ExchangeRatesDataSource == settings.BankOfCanadaDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&BankOfCanadaDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&BankOfCanadaDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.CzechNationalBankDataSource { } else if config.ExchangeRatesDataSource == settings.CzechNationalBankDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&CzechNationalBankDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&CzechNationalBankDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.DanmarksNationalbankDataSource { } else if config.ExchangeRatesDataSource == settings.DanmarksNationalbankDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&DanmarksNationalbankDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&DanmarksNationalbankDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.EuroCentralBankDataSource { } else if config.ExchangeRatesDataSource == settings.EuroCentralBankDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&EuroCentralBankDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&EuroCentralBankDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.NationalBankOfGeorgiaDataSource { } else if config.ExchangeRatesDataSource == settings.NationalBankOfGeorgiaDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfGeorgiaDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfGeorgiaDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.CentralBankOfHungaryDataSource { } else if config.ExchangeRatesDataSource == settings.CentralBankOfHungaryDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&CentralBankOfHungaryDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&CentralBankOfHungaryDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.BankOfIsraelDataSource { } else if config.ExchangeRatesDataSource == settings.BankOfIsraelDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&BankOfIsraelDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&BankOfIsraelDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.CentralBankOfMyanmarDataSource { } else if config.ExchangeRatesDataSource == settings.CentralBankOfMyanmarDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&CentralBankOfMyanmarDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&CentralBankOfMyanmarDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.NorgesBankDataSource { } else if config.ExchangeRatesDataSource == settings.NorgesBankDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&NorgesBankDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&NorgesBankDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.NationalBankOfPolandDataSource { } else if config.ExchangeRatesDataSource == settings.NationalBankOfPolandDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfPolandDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfPolandDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.NationalBankOfRomaniaDataSource { } else if config.ExchangeRatesDataSource == settings.NationalBankOfRomaniaDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfRomaniaDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfRomaniaDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.BankOfRussiaDataSource { } else if config.ExchangeRatesDataSource == settings.BankOfRussiaDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&BankOfRussiaDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&BankOfRussiaDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.SwissNationalBankDataSource { } else if config.ExchangeRatesDataSource == settings.SwissNationalBankDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&SwissNationalBankDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&SwissNationalBankDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.NationalBankOfUkraineDataSource { } else if config.ExchangeRatesDataSource == settings.NationalBankOfUkraineDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&NationalBankOfUkraineDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&NationalBankOfUkraineDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.CentralBankOfUzbekistanDataSource { } else if config.ExchangeRatesDataSource == settings.CentralBankOfUzbekistanDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&CentralBankOfUzbekistanDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&CentralBankOfUzbekistanDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.InternationalMonetaryFundDataSource { } else if config.ExchangeRatesDataSource == settings.InternationalMonetaryFundDataSource {
Container.current = newCommonHttpExchangeRatesDataSource(&InternationalMonetaryFundDataSource{}) Container.current = newCommonHttpExchangeRatesDataProvider(&InternationalMonetaryFundDataSource{})
return nil return nil
} else if config.ExchangeRatesDataSource == settings.UserCustomExchangeRatesDataSource { } else if config.ExchangeRatesDataSource == settings.UserCustomExchangeRatesDataSource {
Container.current = newUserCustomExchangeRatesDataSource() Container.current = newUserCustomExchangeRatesDataProvider()
return nil 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 // 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 { if Container.current == nil {
return nil, errs.ErrInvalidExchangeRatesDataSource return nil, errs.ErrInvalidExchangeRatesDataSource
} }
@@ -15,25 +15,25 @@ import (
const userDataSourceType = "user_custom" const userDataSourceType = "user_custom"
// UserCustomExchangeRatesDataSource defines the structure of user custom exchange rates data source // UserCustomExchangeRatesDataProvider defines the structure of user custom exchange rates data provider
type UserCustomExchangeRatesDataSource struct { type UserCustomExchangeRatesDataProvider struct {
ExchangeRatesDataSource ExchangeRatesDataProvider
users *services.UserService users *services.UserService
userCustomExchangeRates *services.UserCustomExchangeRatesService 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) user, err := e.users.GetUserById(c, uid)
if err != nil { 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) return nil, errs.Or(err, errs.ErrOperationFailed)
} }
customExchangeRates, err := e.userCustomExchangeRates.GetAllCustomExchangeRatesByUid(c, uid) customExchangeRates, err := e.userCustomExchangeRates.GetAllCustomExchangeRatesByUid(c, uid)
if err != nil { 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) return nil, errs.Or(err, errs.ErrOperationFailed)
} }
@@ -93,8 +93,8 @@ func (e *UserCustomExchangeRatesDataSource) GetLatestExchangeRates(c core.Contex
return finalExchangeRateResponse, nil return finalExchangeRateResponse, nil
} }
func newUserCustomExchangeRatesDataSource() *UserCustomExchangeRatesDataSource { func newUserCustomExchangeRatesDataProvider() *UserCustomExchangeRatesDataProvider {
return &UserCustomExchangeRatesDataSource{ return &UserCustomExchangeRatesDataProvider{
users: services.Users, users: services.Users,
userCustomExchangeRates: services.UserCustomExchangeRates, userCustomExchangeRates: services.UserCustomExchangeRates,
} }