func NewSettlementHandler()

in v2/settlehandler.go [85:103]


func NewSettlementHandler(opts *SettlementHandlerOptions, handler Settler) HandlerFunc {
	options := &SettlementHandlerOptions{
		OnNilSettlement: func() Settlement {
			panic("you must return a settlement from the message handler " +
				"or override the OnNilSettlement option to handle nil Settlement")
		},
	}
	if opts != nil {
		options.OnNilSettlement = opts.OnNilSettlement
	}
	return func(ctx context.Context, settler MessageSettler, message *azservicebus.ReceivedMessage) {
		s := handler(ctx, message)
		if s == nil {
			// this panics unless the user overrides the OnNilSettlement option
			s = options.OnNilSettlement()
		}
		s.Settle(ctx, settler, message)
	}
}