31 lines
975 B
Go
31 lines
975 B
Go
package main
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"git.k6n.net/mats/go-cart-actor/pkg/flow"
|
|
"git.k6n.net/mats/go-cart-actor/pkg/order"
|
|
)
|
|
|
|
func buildFlowRegistry(
|
|
applier *orderedApplier,
|
|
provider order.PaymentProvider,
|
|
inventoryReservations order.InventoryReservationService,
|
|
emitPub order.Publisher,
|
|
emailSender order.EmailSender,
|
|
emailTemplates order.EmailTemplateStore,
|
|
prefChecker order.EmailPreferenceChecker,
|
|
logger *slog.Logger,
|
|
) *flow.Registry {
|
|
freg := flow.NewRegistry()
|
|
flow.RegisterBuiltinHooks(freg)
|
|
order.RegisterFlowActions(freg, applier, provider, prefChecker)
|
|
order.RegisterInventoryReservationActions(freg, applier, inventoryReservations)
|
|
order.RegisterEmitHook(freg, emitPub)
|
|
order.RegisterEmailHook(freg, applier, emailSender, emailTemplates, prefChecker)
|
|
order.RegisterFulfillmentWebhookHook(freg, applier, nil)
|
|
order.RegisterOrderCreatedEmit(freg, applier, emitPub, "order", "order")
|
|
registerProjectFlowHooks(freg, applier, logger)
|
|
return freg
|
|
}
|