2023-06-22 09:36:43 +00:00
|
|
|
package initialize
|
|
|
|
|
|
|
|
import (
|
2024-05-23 15:32:44 +00:00
|
|
|
"github.com/themakers/hlog"
|
2023-06-22 09:36:43 +00:00
|
|
|
"go.uber.org/zap"
|
2024-05-21 13:50:26 +00:00
|
|
|
qutils "penahub.gitlab.yandexcloud.net/backend/quiz/common.git/utils"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/broker/tariff"
|
2023-06-22 09:36:43 +00:00
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/grpc/customer"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/grpc/payment"
|
2024-05-21 13:50:26 +00:00
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/http"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/http/account"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/http/cart"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/http/currency"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/http/history"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/controller/http/wallet"
|
|
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/models"
|
2023-06-22 09:36:43 +00:00
|
|
|
)
|
|
|
|
|
2024-05-21 13:50:26 +00:00
|
|
|
type RpcControllersDeps struct {
|
2023-06-22 09:36:43 +00:00
|
|
|
Logger *zap.Logger
|
|
|
|
Services *Services
|
2024-05-23 15:32:44 +00:00
|
|
|
HLogger hlog.Logger
|
2023-06-22 09:36:43 +00:00
|
|
|
}
|
|
|
|
|
2024-05-21 13:50:26 +00:00
|
|
|
type RpcControllers struct {
|
2023-06-22 09:36:43 +00:00
|
|
|
PaymentController *payment.Controller
|
|
|
|
CustomerController *customer.Controller
|
|
|
|
}
|
|
|
|
|
2024-05-21 13:50:26 +00:00
|
|
|
func NewRpcControllers(deps RpcControllersDeps) *RpcControllers {
|
|
|
|
return &RpcControllers{
|
2023-06-22 09:36:43 +00:00
|
|
|
PaymentController: payment.New(payment.Deps{
|
|
|
|
Logger: deps.Logger,
|
|
|
|
PaymentCallbackService: deps.Services.PaymentCallbackService,
|
2024-05-23 15:32:44 +00:00
|
|
|
HLogger: deps.HLogger,
|
2023-06-22 09:36:43 +00:00
|
|
|
}),
|
|
|
|
CustomerController: customer.New(customer.Deps{
|
|
|
|
Logger: deps.Logger,
|
|
|
|
HistoryService: deps.Services.HistoryService,
|
|
|
|
}),
|
|
|
|
}
|
|
|
|
}
|
2024-05-21 13:50:26 +00:00
|
|
|
|
|
|
|
type HttpControllersDeps struct {
|
|
|
|
Encrypt *qutils.Encrypt
|
|
|
|
Producer *tariff.Producer
|
|
|
|
GRPC *models.ConfigurationGRPC
|
|
|
|
MiddleWare *http.MiddleWare
|
|
|
|
Logger *zap.Logger
|
|
|
|
Repositories *Repositories
|
|
|
|
Clients *Clients
|
|
|
|
}
|
|
|
|
|
|
|
|
type HttpController struct {
|
|
|
|
AccountController *account.AccountController
|
|
|
|
CartController *cart.CartController
|
|
|
|
HistoryController *history.HistoryController
|
|
|
|
WalletController *wallet.WalletController
|
|
|
|
CurrencyController *currency.CurrencyController
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewHttpControllers(deps HttpControllersDeps) *HttpController {
|
|
|
|
return &HttpController{
|
|
|
|
AccountController: account.NewAccountController(account.Deps{
|
|
|
|
MiddleWare: deps.MiddleWare,
|
|
|
|
AccountRepo: deps.Repositories.AccountRepository,
|
|
|
|
Logger: deps.Logger,
|
|
|
|
Encrypt: deps.Encrypt,
|
|
|
|
AuthClient: deps.Clients.AuthClient,
|
|
|
|
}),
|
|
|
|
CartController: cart.NewCartController(cart.Deps{
|
|
|
|
MiddleWare: deps.MiddleWare,
|
|
|
|
Logger: deps.Logger,
|
|
|
|
AccountRepo: deps.Repositories.AccountRepository,
|
|
|
|
HistoryRepo: deps.Repositories.HistoryRepository,
|
|
|
|
HubAdminClient: deps.Clients.HubadminClient,
|
|
|
|
DiscountClient: deps.Clients.DiscountClient,
|
|
|
|
CurrencyClient: deps.Clients.CurrencyClient,
|
|
|
|
Producer: deps.Producer,
|
|
|
|
}),
|
|
|
|
HistoryController: history.NewHistoryController(history.Deps{
|
|
|
|
MiddleWare: deps.MiddleWare,
|
|
|
|
HistoryRepo: deps.Repositories.HistoryRepository,
|
|
|
|
AccountRepo: deps.Repositories.AccountRepository,
|
|
|
|
VerifyClient: deps.Clients.VerificationClient,
|
|
|
|
AuthClient: deps.Clients.AuthClient,
|
|
|
|
TemplateClient: deps.Clients.TemplateClient,
|
|
|
|
CodewordClient: deps.Clients.CodewordClient,
|
|
|
|
Logger: deps.Logger,
|
|
|
|
}),
|
|
|
|
WalletController: wallet.NewWalletController(wallet.Deps{
|
|
|
|
MiddleWare: deps.MiddleWare,
|
|
|
|
AuthClient: deps.Clients.AuthClient,
|
|
|
|
PaymentClient: deps.Clients.PaymentClient,
|
|
|
|
GRPC: deps.GRPC,
|
|
|
|
AccountRepo: deps.Repositories.AccountRepository,
|
|
|
|
CurrencyClient: deps.Clients.CurrencyClient,
|
|
|
|
VerifyClient: deps.Clients.VerificationClient,
|
|
|
|
MailClient: deps.Clients.MailClient,
|
|
|
|
Logger: deps.Logger,
|
|
|
|
}),
|
|
|
|
CurrencyController: currency.NewCurrencyController(currency.Deps{
|
|
|
|
CurrencyRepo: deps.Repositories.CurrencyRepository,
|
|
|
|
MiddleWare: deps.MiddleWare,
|
|
|
|
Logger: deps.Logger,
|
|
|
|
}),
|
|
|
|
}
|
|
|
|
}
|