treasurer/internal/initialize/controllers.go

50 lines
1.4 KiB
Go

package initialize
import (
"gitea.pena/PenaSide/treasurer/internal/controller/grpc"
"gitea.pena/PenaSide/treasurer/internal/controller/http_controllers/payment"
"gitea.pena/PenaSide/treasurer/internal/controller/http_controllers/yandex"
"gitea.pena/PenaSide/treasurer/internal/errors"
"go.uber.org/zap"
)
type ControllersDeps struct {
Logger *zap.Logger
Services Services
Repositories Repositories
}
type Controllers struct {
YandexStatusREST *yandex.YandexStatusController
PaymentGRPC *grpc.PaymentController
PaymentRest *payment.PaymentController
}
func NewControllers(deps ControllersDeps) (*Controllers, errors.Error) {
yandexStatusControllerREST, err := yandex.NewYandexStatusController(yandex.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,
PaymentProviders: deps.Services.PaymentProviders,
PaymentMethodRepository: deps.Repositories.PaymentMethod,
})
if err != nil {
return nil, err
}
paymentControllerRest := payment.NewPaymentController(deps.Services.PaymentProviders)
return &Controllers{
YandexStatusREST: yandexStatusControllerREST,
PaymentGRPC: paymentControllerGRPC,
PaymentRest: paymentControllerRest,
}, nil
}