github.com/profzone/eden-framework@v1.0.10/pkg/validate/validatetpl/validate.go (about) 1 package validatetpl 2 3 import ( 4 "sync" 5 ) 6 7 type ValidateFnMap struct { 8 sync.Map 9 } 10 11 var validateFns = ValidateFnMap{} 12 13 func (m *ValidateFnMap) Store(name string, validateFn func(v interface{}) (bool, string)) *ValidateFnMap { 14 m.Map.Store(name, validateFn) 15 return m 16 } 17 18 func (m *ValidateFnMap) Load(name string) (validateFunc func(v interface{}) (bool, string), ok bool) { 19 v, ok := m.Map.Load(name) 20 if ok { 21 validateFunc = v.(func(v interface{}) (bool, string)) 22 } 23 return 24 } 25 26 func AddValidateFunc(name string, validateFunc func(v interface{}) (bool, string)) { 27 validateFns.Store(name, validateFunc) 28 } 29 30 func GetValidateFunc(name string) (validateFunc func(v interface{}) (bool, string), ok bool) { 31 return validateFns.Load(name) 32 } 33 34 func init() { 35 AddValidateFunc("@phoneNo", ValidatePhone) 36 AddValidateFunc("@phoneNoOrEmpty", ValidatePhoneOrEmpty) 37 AddValidateFunc("@idCardNo", ValidateIDCardNo) 38 AddValidateFunc("@idCardNoOrEmpty", ValidateIDCardNoOrEmpty) 39 AddValidateFunc("@ipv4", ValidateIPv4) 40 AddValidateFunc("@ipv4OrEmpty", ValidateIPv4OrEmpty) 41 AddValidateFunc("@httpUrl", ValidateHttpUrl) 42 AddValidateFunc("@httpUrlOrEmpty", ValidateHttpUrlOrEmpty) 43 AddValidateFunc("@email", ValidateEmail) 44 AddValidateFunc("@emailOrEmpty", ValidateEmailOrEmpty) 45 AddValidateFunc("@password", ValidatePassword) 46 AddValidateFunc("@passwordOrEmpty", ValidatePasswordOrEmpty) 47 AddValidateFunc("@zipZh", ValidateZipZh) 48 AddValidateFunc("@zipZhOrEmpty", ValidateZipZhOrEmpty) 49 AddValidateFunc("@unitySocialCreditCode", ValidateUnitySocialCreditCode) 50 AddValidateFunc("@unitySocialCreditCodeOrEmpty", ValidateUnitySocialCreditCodeOrEmpty) 51 AddValidateFunc("@businessLicense", ValidateBusinessLicense) 52 AddValidateFunc("@businessLicenseOrEmpty", ValidateBusinessLicenseOrEmpty) 53 AddValidateFunc("@orgInsitituteCode", ValidateOrgInsitituteCode) 54 AddValidateFunc("@orgInsitituteCodeOrEmpty", ValidateOrgInsitituteCodeOrEmpty) 55 AddValidateFunc("@mysqlDataType", ValidateMySQLDataType) 56 AddValidateFunc("@mysqlDataTypeOrEmpty", ValidateMySQLDataTypeOrEmpty) 57 AddValidateFunc("@crontab", ValidateCrontab) 58 AddValidateFunc("@crontabOrEmpty", ValidateCrontabOrEmpty) 59 AddValidateFunc("@bankCard", ValidateBankCard) 60 AddValidateFunc("@plateNo", ValidatePlateNo) 61 }