53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
![]() |
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
|
||
|
}
|