customer/internal/initialize/services.go

62 lines
2.0 KiB
Go
Raw Normal View History

2023-06-22 09:36:43 +00:00
package initialize
import (
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
2023-07-07 01:57:06 +00:00
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/broker/tariff"
2023-06-22 09:36:43 +00:00
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/service/callback"
"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
2023-07-07 01:57:06 +00:00
Brokers *Brokers
2023-06-22 09:36:43 +00:00
ConfigurationGRPC *models.ConfigurationGRPC
}
type Services struct {
HistoryService *history.Service
WalletService *wallet.Service
PaymentCallbackService *callback.PaymentCallbackService
2023-07-07 01:57:06 +00:00
TariffBrokerService *tariff.Service
2023-06-22 09:36:43 +00:00
}
func NewServices(deps ServicesDeps) *Services {
historyService := history.New(history.Deps{
Logger: deps.Logger,
Repository: deps.Repositories.HistoryRepository,
2023-11-05 13:58:41 +00:00
AuthClient: deps.Clients.AuthClient,
2023-06-22 09:36:43 +00:00
})
walletService := wallet.New(wallet.Deps{
2024-02-04 20:20:52 +00:00
Logger: deps.Logger,
Repository: deps.Repositories.AccountRepository,
CurrencyClient: deps.Clients.CurrencyClient,
VerificationClient: deps.Clients.VerificationClient,
2024-02-05 08:23:35 +00:00
AuthClient: deps.Clients.AuthClient,
2024-02-05 11:13:36 +00:00
MailClient: deps.Clients.MailClient,
2024-02-04 20:20:52 +00:00
HistoryService: historyService,
2023-06-22 09:36:43 +00:00
})
2023-07-07 01:57:06 +00:00
tariffBrokerService := tariff.New(tariff.Deps{
Logger: deps.Logger,
Consumer: deps.Brokers.TariffConsumer,
Producer: deps.Brokers.TariffProducer,
})
2023-06-22 09:36:43 +00:00
return &Services{
WalletService: walletService,
HistoryService: historyService,
PaymentCallbackService: callback.NewPaymentCallbackService(callback.PaymentCallbackServiceDeps{
Logger: deps.Logger,
AccountRepository: deps.Repositories.AccountRepository,
WalletService: walletService,
HistoryService: historyService,
}),
2023-07-07 01:57:06 +00:00
TariffBrokerService: tariffBrokerService,
2023-06-22 09:36:43 +00:00
}
}