github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/presentation/check-if-email-exist/cmd/dep_test_generator/gen.go (about) 1 // +build ignore 2 3 package main 4 5 import ( 6 "bytes" 7 "encoding/json" 8 "fmt" 9 "github.com/go-email-validator/go-email-validator/pkg/presentation/check_if_email_exist" 10 "github.com/go-email-validator/go-email-validator/pkg/presentation/converter" 11 "io/ioutil" 12 "log" 13 "net/http" 14 "os" 15 ) 16 17 // TODO DRY for gen fixtures 18 func main() { 19 var bodyBytes []byte 20 var err error 21 emails := converter.EmailsForTests() 22 deps := make([]interface{}, len(emails)) 23 24 err = godotenv.Load() 25 die(err) 26 27 apiKey := os.Getenv("CHECK_IF_EMAIL_EXIST") 28 29 for i, email := range emails { 30 message := map[string]interface{}{ 31 "to_email": email, 32 } 33 34 bytesRepresentation, _ := json.Marshal(message) 35 req, err := http.NewRequest( 36 "POST", 37 "https://ssfy.sh/amaurymartiny/reacher@2d2ce35c/check_email", 38 bytes.NewBuffer(bytesRepresentation), 39 ) 40 die(err) 41 req.Header.Set("Content-Type", "application/json") 42 if apiKey != "" { 43 req.Header.Set("authorization", apiKey) 44 } 45 46 func() { 47 resp, err := http.DefaultClient.Do(req) 48 die(err) 49 defer resp.Body.Close() 50 bodyBytes, err = ioutil.ReadAll(resp.Body) 51 die(err) 52 }() 53 54 var dep checkifemailexist.DepPresentation 55 err = json.Unmarshal(bodyBytes, &dep) 56 die(err) 57 58 if dep.Error != "" { 59 panic(fmt.Sprint(email, dep.Error)) 60 } 61 62 deps[i] = dep 63 } 64 65 f, err := os.Create(test.DefaultDepFixtureFile) 66 die(err) 67 defer f.Close() 68 69 bytes, err := json.MarshalIndent(deps, "", " ") 70 die(err) 71 _, err = f.Write(bytes) 72 die(err) 73 } 74 75 func die(err error) { 76 if err != nil { 77 log.Fatal(err) 78 } 79 }