in operationsbus/handlers.go [45:89]
func DefaultHandlers(
serviceBusReceiver sb.ReceiverInterface,
matcher *Matcher,
operationContainer oc.OperationContainerClient,
entityController EntityController,
logger *slog.Logger,
hooks []BaseOperationHooksInterface,
) shuttle.HandlerFunc {
// Lock renewal settings
lockRenewalInterval := 10 * time.Second
lockRenewalOptions := &shuttle.LockRenewalOptions{Interval: &lockRenewalInterval}
var errorHandler ErrorHandlerFunc
if operationContainer != nil {
errorHandler = NewOperationContainerHandler(
NewErrorReturnHandler(
OperationHandler(matcher, hooks, entityController),
serviceBusReceiver,
nil,
),
operationContainer,
)
} else {
errorHandler = NewErrorReturnHandler(
OperationHandler(matcher, hooks, entityController),
serviceBusReceiver,
nil,
)
}
// Combine handlers into a single default handler
return shuttle.NewPanicHandler(
nil,
shuttle.NewRenewLockHandler(
lockRenewalOptions,
NewLogHandler(
logger,
NewQosErrorHandler(
errorHandler,
),
),
),
)
}