generated from PenaSide/GolangTemplate
51 lines
1.2 KiB
Go
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(¤cy.Deps{
|
|
Logger: deps.Logger,
|
|
CurrencyService: deps.Services.CurrencyService,
|
|
}),
|
|
CartController: cart.New(&cart.Deps{
|
|
Logger: deps.Logger,
|
|
CartService: deps.Services.CartService,
|
|
}),
|
|
}
|
|
}
|