customer/internal/initialize/controllers.go
2023-05-19 10:21:45 +03:00

51 lines
1.2 KiB
Go

package initialize
import (
"log"
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/controller/account"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/controller/cart"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/controller/currency"
)
type ControllersDeps struct {
Logger *zap.Logger
Services *Services
}
type Controllers struct {
AccountController *account.Controller
CurrencyController *currency.Controller
CartController *cart.Controller
}
func NewControllers(deps *ControllersDeps) *Controllers {
if deps == nil {
log.Panicln("deps is nil on <NewControllers>")
}
if deps.Logger == nil {
log.Panicln("logger is nil on <NewControllers>")
}
if deps.Services == nil {
log.Panicln("services is nil on <NewControllers>")
}
return &Controllers{
AccountController: account.New(&account.Deps{
Logger: deps.Logger,
Service: deps.Services.AccountService,
}),
CurrencyController: currency.New(&currency.Deps{
Logger: deps.Logger,
CurrencyService: deps.Services.CurrencyService,
}),
CartController: cart.New(&cart.Deps{
Logger: deps.Logger,
CartService: deps.Services.CartService,
}),
}
}