customer/internal/initialize/services.go
2023-05-23 18:42:22 +03:00

52 lines
1.5 KiB
Go

package initialize
import (
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/account"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/cart"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/currency"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/history"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/wallet"
)
type ServicesDeps struct {
Logger *zap.Logger
Repositories *Repositories
Clients *Clients
}
type Services struct {
AccountService *account.Service
CurrencyService *currency.Service
CartService *cart.Service
HistoryService *history.Service
WalletService *wallet.Service
}
func NewServices(deps *ServicesDeps) *Services {
return &Services{
AccountService: account.New(&account.Deps{
Logger: deps.Logger,
Repository: deps.Repositories.AccountRepository,
AuthClient: deps.Clients.AuthClient,
}),
CurrencyService: currency.New(&currency.Deps{
Logger: deps.Logger,
Repository: deps.Repositories.CurrencyRepository,
}),
CartService: cart.New(&cart.Deps{
Logger: deps.Logger,
Repository: deps.Repositories.AccountRepository,
HubadminClient: deps.Clients.HubadminClient,
}),
HistoryService: history.New(&history.Deps{
Logger: deps.Logger,
Repository: deps.Repositories.HistoryRepository,
}),
WalletService: wallet.New(&wallet.Deps{
Logger: deps.Logger,
Repository: deps.Repositories.AccountRepository,
}),
}
}