3
0

Refactor handler ops maker functions

This commit is contained in:
Denis Arh
2020-03-23 19:49:55 +01:00
parent 5cba50e3b2
commit 44f818e180
3 changed files with 18 additions and 8 deletions
+15 -5
View File
@@ -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))
}
+3 -3
View File
@@ -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")
}
View File