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  }