From 44f818e180f46e483f43b4ff512aefa1ee5c2ddc Mon Sep 17 00:00:00 2001 From: Denis Arh Date: Mon, 23 Mar 2020 19:49:55 +0100 Subject: [PATCH] Refactor handler ops maker functions --- pkg/corredor/util.go | 20 +++++++++++++++----- pkg/corredor/util_test.go | 6 +++--- pkg/iterator/README.adoc | 0 3 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 pkg/iterator/README.adoc diff --git a/pkg/corredor/util.go b/pkg/corredor/util.go index a30a6b066..a52f173ae 100644 --- a/pkg/corredor/util.go +++ b/pkg/corredor/util.go @@ -41,13 +41,13 @@ func mapManualTriggers(script *ServerScript) map[string]bool { } // converts trigger's constraint to eventbus' constraint options -func makeTriggerOpts(t *Trigger) (oo []eventbus.HandlerRegOp, err error) { +func triggerToHandlerOps(t *Trigger) (oo []eventbus.HandlerRegOp, err error) { if len(t.ResourceTypes) == 0 { - return nil, fmt.Errorf("can not generate trigger without at least one resource") + return nil, fmt.Errorf("can not generate event handler without at least one resource") } if len(t.EventTypes) == 0 { - return nil, fmt.Errorf("can not generate trigger without at least one events") + return nil, fmt.Errorf("can not generate event handler without at least one events") } // Make a copy of event types slice so that we do not modify it @@ -59,9 +59,19 @@ func makeTriggerOpts(t *Trigger) (oo []eventbus.HandlerRegOp, err error) { oo = append(oo, eventbus.For(t.ResourceTypes...)) oo = append(oo, eventbus.On(types...)) - for _, raw := range t.Constraints { + if cc, err := constraintsToHandlerOps(t.Constraints); err != nil { + return nil, err + } else { + oo = append(oo, cc...) + } + + return +} + +func constraintsToHandlerOps(cc []*TConstraint) (oo []eventbus.HandlerRegOp, err error) { + for _, raw := range cc { if c, err := eventbus.ConstraintMaker(raw.Name, raw.Op, raw.Value...); err != nil { - return nil, errors.Wrap(err, "can not generate trigger") + return nil, errors.Wrap(err, "can not generate constraints") } else { oo = append(oo, eventbus.Constraint(c)) } diff --git a/pkg/corredor/util_test.go b/pkg/corredor/util_test.go index f570cd45a..356dde8de 100644 --- a/pkg/corredor/util_test.go +++ b/pkg/corredor/util_test.go @@ -53,14 +53,14 @@ func TestTriggerOptsMaking(t *testing.T) { err error ) - oo, err = makeTriggerOpts(trg) + oo, err = triggerToHandlerOps(trg) a.NoError(err) a.Len(oo, 4) // 1x all resources, 1x all events, 2x constraints - oo, err = makeTriggerOpts(&Trigger{ResourceTypes: []string{"bar"}}) + oo, err = triggerToHandlerOps(&Trigger{ResourceTypes: []string{"bar"}}) a.Error(err, "expecting to fail on trigger w/o events") - oo, err = makeTriggerOpts(&Trigger{EventTypes: []string{"foo"}}) + oo, err = triggerToHandlerOps(&Trigger{EventTypes: []string{"foo"}}) a.Error(err, "expecting to fail on trigger w/o resources") } diff --git a/pkg/iterator/README.adoc b/pkg/iterator/README.adoc new file mode 100644 index 000000000..e69de29bb