عکس Sazito
a rule-engine with custom dsl for golangGo
موضوع‌ها
۰
فورک‌ها
۰
ستاره‌ها
۹
تاریخ ایجاد
۱۶ آذر ۱۳۹۸
آخرین بروزرسانی
نزدیک ۳ سال قبل
لایسنس
MIT License

Example:

 func now() int64 { return time.Now().Unix() }
 func days(count float64) float64 {
     return count * 24 * 60 * 60
 }

 func main() {
     funcMap := map[string]interface{}{
        "now":  now,
        "days": days,
    }
    inputMap := map[string]interface{}{
        "registered_date": time.Now().Unix(),
        "sales_amount":    2000000,
    }
    outputMap := map[string]interface{}{
        "plan_name": "premium_1",
    }
    output, err := mosalat.Run([]string{
        `now() > registered_date + days(14) && plan_name == "premium_1" | plan_name = "free"`,
        `plan_name == "premium_1" | plan_name = "free"`,
        `plan_name == "free" | feature_1 = true`,
    }, funcMap, inputMap, outputMap) // --> [plan_name: "free", feature_1: true]
 }