Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrDecisionDenied = errors.New("trigger: evaluation = false") ErrEmptyExpressions = errors.New("trigger: empty expressions") )
Functions ¶
This section is empty.
Types ¶
type Decision ¶
type Decision struct {
// contains filtered or unexported fields
}
Decision is used to evaluate boolean expressions
func NewDecision ¶
NewDecision creates a new Decision with the given boolean CEL expressions
Example ¶
package main
import (
"fmt"
"github.com/graphikDB/trigger"
)
func main() {
decision, err := trigger.NewDecision("this.email.endsWith('acme.com')")
if err != nil {
fmt.Println(err.Error())
return
}
if err := decision.Eval(map[string]interface{}{
"name": "bob",
"email": "bob@acme.com",
}); err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(decision.Expression())
}
Output: this.email.endsWith('acme.com')
func (*Decision) Expression ¶
Expressions returns the decsions raw expression
type Trigger ¶
type Trigger struct {
// contains filtered or unexported fields
}
Trigger creates values as map[string]interface{} if it's decisider returns no errors against a Mapper
func NewTrigger ¶
NewTrigger creates a new trigger instance from the decision & trigger expressions
Example ¶
package main
import (
"fmt"
"github.com/graphikDB/trigger"
)
func main() {
decision, err := trigger.NewDecision("this.email.endsWith('acme.com')")
if err != nil {
fmt.Println(err.Error())
return
}
trigg, err := trigger.NewTrigger(decision, `
{
'admin': true,
'updated_at': now(),
'email_hash': sha1(this.email)
}
`)
if err != nil {
fmt.Println(err.Error())
return
}
person := map[string]interface{}{
"name": "bob",
"email": "bob@acme.com",
}
data, err := trigg.Trigger(person)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(data["admin"], data["updated_at"].(int64) > 0, data["email_hash"])
}
Output: true true 6fd706dd2d151c2bf79218a2acd764a7d3eed7e3
func (*Trigger) Expression ¶
Expression returns the triggers raw CEL expressions
Click to show internal directories.
Click to hide internal directories.