github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/ev/validator_whitelist_domain.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  // WhiteListDomainValidatorName name of whiteListValidator
     9  const WhiteListDomainValidatorName ValidatorName = "WhiteListDomain"
    10  
    11  // WhiteListErr is text for WhiteListError.Error
    12  const WhiteListErr = "WhiteListError"
    13  
    14  // WhiteListError is error for WhiteListDomainValidatorName
    15  type WhiteListError struct{}
    16  
    17  func (WhiteListError) Error() string {
    18  	return WhiteListErr
    19  }
    20  
    21  // NewWhiteListValidator instantiates WhiteListDomainValidatorName
    22  func NewWhiteListValidator(d contains.InSet) Validator {
    23  	return whiteListValidator{d: d}
    24  }
    25  
    26  type whiteListValidator struct {
    27  	d contains.InSet
    28  	AValidatorWithoutDeps
    29  }
    30  
    31  func (w whiteListValidator) Validate(input Input, _ ...ValidationResult) ValidationResult {
    32  	var err error
    33  	var isContains = w.d.Contains(input.Email().Domain())
    34  	if !isContains {
    35  		err = WhiteListError{}
    36  	}
    37  
    38  	return NewResult(isContains, utils.Errs(err), nil, WhiteListDomainValidatorName)
    39  }