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  }