|
@@ -30,6 +30,10 @@ type (
|
|
Column string
|
|
Column string
|
|
Model interface{}
|
|
Model interface{}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ validation struct {
|
|
|
|
+ curd *rest.CRUD
|
|
|
|
+ }
|
|
)
|
|
)
|
|
|
|
|
|
var (
|
|
var (
|
|
@@ -144,7 +148,7 @@ func formatError(rule rest.Rule, scm *rest.Schema, tag string) string {
|
|
return s
|
|
return s
|
|
}
|
|
}
|
|
|
|
|
|
-func validation(db *gorm.DB) {
|
|
|
|
|
|
+func (vv *validation) validation(db *gorm.DB) {
|
|
if result, ok := db.Get(SkipValidations); ok && result.(bool) {
|
|
if result, ok := db.Get(SkipValidations); ok && result.(bool) {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -174,7 +178,7 @@ func validation(db *gorm.DB) {
|
|
break
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- schemas = rest.VisibleSchemas(stmt.ReflectValue.FieldByName("Namespace").String(), model.ModuleName(), model.TableName(), scenario)
|
|
|
|
|
|
+ schemas = vv.curd.Schemas(stmt.ReflectValue.FieldByName("Namespace").String(), model.ModuleName(), model.TableName(), scenario)
|
|
for _, scm := range schemas {
|
|
for _, scm := range schemas {
|
|
if scm.Rules == "" {
|
|
if scm.Rules == "" {
|
|
continue
|
|
continue
|
|
@@ -235,12 +239,13 @@ func validation(db *gorm.DB) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-func RegisterValidationCallback(db *gorm.DB) {
|
|
|
|
- callback := db.Callback()
|
|
|
|
|
|
+func RegisterValidationCallback(curd *rest.CRUD) {
|
|
|
|
+ callback := curd.DB().Callback()
|
|
|
|
+ vv := &validation{curd: curd}
|
|
if callback.Create().Get("validations:validate") == nil {
|
|
if callback.Create().Get("validations:validate") == nil {
|
|
- _ = callback.Create().Before("gorm:before_create").Register("validations:validate", validation)
|
|
|
|
|
|
+ _ = callback.Create().Before("gorm:before_create").Register("validations:validate", vv.validation)
|
|
}
|
|
}
|
|
if callback.Update().Get("validations:validate") == nil {
|
|
if callback.Update().Get("validations:validate") == nil {
|
|
- _ = callback.Update().Before("gorm:before_update").Register("validations:validate", validation)
|
|
|
|
|
|
+ _ = callback.Update().Before("gorm:before_update").Register("validations:validate", vv.validation)
|
|
}
|
|
}
|
|
}
|
|
}
|