kra-new/internal/integration/provider.go

41 lines
1.5 KiB
Go

// Package integration contains adapters for external systems and runtime
// clients. These constructors are kept out of the persistence provider set so
// the data package does not also act as the integration composition root.
package integration
import (
integrationbiz "kra/internal/biz/integration"
bizpayment "kra/internal/biz/payment"
"kra/internal/biz/system"
"kra/internal/integration/cache"
"kra/internal/integration/email"
mqintegration "kra/internal/integration/mq"
paymentintegration "kra/internal/integration/payment"
"kra/internal/integration/storage"
"kra/internal/integration/systeminfo"
websocketintegration "kra/internal/integration/websocket"
"kra/pkg/mq"
platformws "kra/pkg/websocket"
"github.com/google/wire"
)
var ProviderSet = wire.NewSet(
cache.New,
email.NewEmailRepo,
paymentintegration.NewFactory,
wire.Bind(new(bizpayment.PaymentAdapterFactory), new(*paymentintegration.Factory)),
storage.NewFileStorage,
systeminfo.NewProvider,
wire.Bind(new(system.SystemInfoProvider), new(*systeminfo.Provider)),
NewConnectivityTester,
wire.Bind(new(integrationbiz.IntegrationConnectionTester), new(*ConnectivityTester)),
mqintegration.New,
wire.Bind(new(mq.Client), new(*mqintegration.Reloadable)),
wire.Bind(new(mq.Registry), new(*mqintegration.Reloadable)),
wire.Bind(new(mq.SubscriptionRegistrar), new(*mqintegration.Reloadable)),
websocketintegration.New,
wire.Bind(new(platformws.Hub), new(*websocketintegration.Server)),
wire.Bind(new(system.FileStorage), new(*storage.Reloadable)),
)