github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/presentation/check-if-email-exist/syntax.go (about) 1 package checkifemailexist 2 3 import ( 4 "github.com/go-email-validator/go-email-validator/pkg/ev" 5 "github.com/go-email-validator/go-email-validator/pkg/ev/evmail" 6 "github.com/go-email-validator/go-email-validator/pkg/presentation/converter" 7 ) 8 9 // SyntaxPresentation for check-if-email-exists 10 type SyntaxPresentation struct { 11 Address *string `json:"address"` 12 Username string `json:"username"` 13 Domain string `json:"domain"` 14 IsValidSyntax bool `json:"is_valid_syntax"` 15 } 16 17 // SyntaxConverter converts ev.ValidationResult in SyntaxConverter 18 type SyntaxConverter struct{} 19 20 // Can ev.ValidationResult be converted in SyntaxConverter 21 func (SyntaxConverter) Can(_ evmail.Address, result ev.ValidationResult, _ converter.Options) bool { 22 return result.ValidatorName() == ev.SyntaxValidatorName 23 } 24 25 // Convert ev.ValidationResult in SyntaxPresentation 26 func (SyntaxConverter) Convert(email evmail.Address, result ev.ValidationResult, _ converter.Options) interface{} { 27 presentation := SyntaxPresentation{} 28 29 if result.IsValid() { 30 address := email.String() 31 presentation.Address = &address 32 presentation.Username = email.Username() 33 presentation.Domain = email.Domain() 34 presentation.IsValidSyntax = result.IsValid() 35 } 36 return presentation 37 }