github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_banwords_username.go (about) 1 package ev 2 3 import ( 4 "github.com/go-email-validator/go-email-validator/pkg/ev/contains" 5 "github.com/go-email-validator/go-email-validator/pkg/ev/utils" 6 ) 7 8 // BanWordsUsernameValidatorName is name of ban words username 9 // If email username has ban worlds, the email is invalid 10 const BanWordsUsernameValidatorName ValidatorName = "BanWordsUsername" 11 12 // BanWordsUsernameErr is text for BanWordsUsernameError.Error 13 const BanWordsUsernameErr = "BanWordsUsernameError" 14 15 // BanWordsUsernameError is BanWordsUsernameValidatorName error 16 type BanWordsUsernameError struct{} 17 18 func (BanWordsUsernameError) Error() string { 19 return BanWordsUsernameErr 20 } 21 22 // NewBanWordsUsername instantiates BanWordsUsernameValidatorName validator 23 func NewBanWordsUsername(inStrings contains.InStrings) Validator { 24 return banWordsUsernameValidator{d: inStrings} 25 } 26 27 type banWordsUsernameValidator struct { 28 d contains.InStrings 29 AValidatorWithoutDeps 30 } 31 32 func (w banWordsUsernameValidator) Validate(input Input, _ ...ValidationResult) ValidationResult { 33 var err error 34 var isContains = w.d.Contains(input.Email().Username()) 35 if isContains { 36 err = BanWordsUsernameError{} 37 } 38 39 return NewResult(!isContains, utils.Errs(err), nil, BanWordsUsernameValidatorName) 40 }