package initialize import ( "gitea.pena/PenaSide/treasurer/internal/controller/grpc" "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 } type Controllers struct { YandexStatusREST *yandex.YandexStatusController PaymentGRPC *grpc.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, PaymentService: deps.Services.Payment, }) if err != nil { return nil, err } return &Controllers{ YandexStatusREST: yandexStatusControllerREST, PaymentGRPC: paymentControllerGRPC, }, nil }