Documentation ¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrDecisionDenied = errors.New("eval: evaluation = false") ErrEmptyExpressions = errors.New("eval: empty expressions") )
Functions ¶
This section is empty.
Types ¶
type Decision ¶ added in v0.0.1
type Decision struct {
// contains filtered or unexported fields
}
Decision is used to evaluate boolean expressions
func NewDecision ¶ added in v0.0.1
NewDecision creates a new Decision with the given boolean CEL expressions
Example ¶
package main import ( "fmt" "github.com/graphikDB/eval" ) func main() { decision, err := eval.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) Eval ¶ added in v0.0.1
Eval evaluates the boolean CEL expressions against the Mapper
func (*Decision) Expression ¶ added in v0.0.6
Expressions returns the decsions raw expression
type Trigger ¶ added in v0.0.2
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 ¶ added in v0.0.2
NewTrigger creates a new trigger instance from the decision & trigger expressions
Example ¶
package main import ( "fmt" "github.com/graphikDB/eval" ) func main() { decision, err := eval.NewDecision("this.email.endsWith('acme.com')") if err != nil { fmt.Println(err.Error()) return } trigg, err := eval.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 ¶ added in v0.0.6
Expression returns the triggers raw CEL expressions
Click to show internal directories.
Click to hide internal directories.