treasurer/internal/initialize/controllers.go

53 lines
1.4 KiB
Go
Raw Normal View History

2023-06-13 13:22:51 +00:00
package initialize
import (
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/external/treasurer/internal/errors"
"penahub.gitlab.yandexcloud.net/external/treasurer/internal/interface/controller/grpc"
"penahub.gitlab.yandexcloud.net/external/treasurer/internal/interface/controller/rest"
)
type ControllersDeps struct {
Logger *zap.Logger
Services Services
}
type Controllers struct {
CommonREST *rest.CommonController
YandexStatusREST *rest.YandexStatusController
PaymentGRPC *grpc.PaymentController
}
func NewControllers(deps ControllersDeps) (*Controllers, errors.Error) {
commonControllerREST, err := rest.NewCommonController(rest.CommonControllerDeps{
Logger: deps.Logger,
PaymentService: deps.Services.Payment,
})
if err != nil {
return nil, err
}
yandexStatusControllerREST, err := rest.NewYandexStatusController(rest.YandexStatusControllerDeps{
Logger: deps.Logger,
StatusService: deps.Services.Status,
CallbackService: deps.Services.Callback,
})
if err != nil {
return nil, err
}
paymentControllerGRPC, err := grpc.NewPaymentController(grpc.PaymentControllerDeps{
Logger: deps.Logger,
PaymentService: deps.Services.Payment,
})
if err != nil {
return nil, err
}
return &Controllers{
CommonREST: commonControllerREST,
YandexStatusREST: yandexStatusControllerREST,
PaymentGRPC: paymentControllerGRPC,
}, nil
}