github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/presentation/prompt-email-verification-api/cmd/dep_test_generator/gen.go (about) 1 // +build ignore 2 3 package main 4 5 import ( 6 "encoding/json" 7 "fmt" 8 "github.com/go-email-validator/go-email-validator/pkg/presentation/converter" 9 "github.com/go-email-validator/go-email-validator/pkg/presentation/prompt-email-verification-api/cmd/dep_test_generator/genstruct" 10 "io/ioutil" 11 "log" 12 "net/http" 13 "os" 14 "strings" 15 ) 16 17 func main() { 18 var bodyBytes []byte 19 var err error 20 emails := converter.EmailsForTests() 21 deps := make([]interface{}, len(emails)) 22 23 err = godotenv.Load() 24 die(err) 25 26 apiKey := os.Getenv("PROMPT_EMAIL_VERIFICATION_API") 27 if apiKey == "" { 28 panic("PROMPT_EMAIL_VERIFICATION_API should be set") 29 } 30 31 for i, email := range emails { 32 req, err := http.NewRequest( 33 "GET", 34 fmt.Sprintf("https://api.promptapi.com/email_verification/%s", email), 35 nil, 36 ) 37 die(err) 38 req.Header.Set("apikey", apiKey) 39 40 func() { 41 resp, err := http.DefaultClient.Do(req) 42 die(err) 43 defer resp.Body.Close() 44 bodyBytes, err = ioutil.ReadAll(resp.Body) 45 die(err) 46 }() 47 48 if strings.Contains(dep.Message, "API rate limit") { 49 panic(fmt.Sprint(email, dep.Message)) 50 } 51 52 deps[i] = genstruct.DepPresentationTest{Email: email, Dep: dep} 53 } 54 55 f, err := os.Create(test.DefaultDepFixtureFile) 56 die(err) 57 defer f.Close() 58 59 bytes, err := json.MarshalIndent(deps, "", " ") 60 die(err) 61 _, err = f.Write(bytes) 62 die(err) 63 } 64 65 func die(err error) { 66 if err != nil { 67 log.Fatal(err) 68 } 69 }