diff options
Diffstat (limited to 'cloudflare/http.go')
| -rw-r--r-- | cloudflare/http.go | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/cloudflare/http.go b/cloudflare/http.go new file mode 100644 index 0000000..f258f61 --- /dev/null +++ b/cloudflare/http.go @@ -0,0 +1,110 @@ +// This is a simple example +package cloudflare + +import ( + "log" + "fmt" + "io/ioutil" + "net/http" + "bytes" +) + +/* +curl --request POST \ + --url https://api.cloudflare.com/client/v4/zones/zone_identifier/dns_records \ + --header 'Content-Type: application/json' \ + --header 'X-Auth-Email: ' \ + --data '{ + "content": "198.51.100.4", + "name": "example.com", + "proxied": false, + "type": "A", + "comment": "Domain verification record", + "tags": [ + "owner:dns-team" + ], + "ttl": 3600 +}' +*/ + +func httpPut(dnsRow *RRT) (string, string) { + var url string = cloudflareURL + dnsRow.ZoneID + "/dns_records/" + dnsRow.ID + var authKey string = dnsRow.Auth + var email string = dnsRow.Email + + var tmp string + tmp = makeJSON(dnsRow) + data := []byte(tmp) + + log.Println("http PUT url =", url) + // log.Println("http PUT data =", data) + // spew.Dump(data) + pretty, _ := FormatJSON(string(data)) + log.Println("http PUT data =", pretty) + + req, err := http.NewRequest(http.MethodPut, url, bytes.NewBuffer(data)) + + // Set headers + req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Auth-Key", authKey) + req.Header.Set("X-Auth-Email", email) + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + log.Println(err) + return tmp, fmt.Sprintf("blah err =", err) + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Println(err) + return tmp, fmt.Sprintf("blah err =", err) + } + // log.Println("http PUT body =", body) + // spew.Dump(body) + + return tmp, string(body) +} + +func curlPost(dnsRow *RRT) string { + var authKey string = dnsRow.Auth + var email string = dnsRow.Email + + url := dnsRow.url + tmp := dnsRow.data + + log.Println("curl() START") + log.Println("curl() authkey = ", authKey) + log.Println("curl() email = ", email) + log.Println("curl() url = ", url) + data := []byte(tmp) + req, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(data)) + + // Set headers + req.Header.Set("Content-Type", "application/json") + req.Header.Set("X-Auth-Key", authKey) + req.Header.Set("X-Auth-Email", email) + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + log.Println(err) + return "" + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Println(err) + return "" + } + // log.Println("http PUT body =", body) + // spew.Dump(body) + + log.Println("result =", string(body)) + log.Println("curl() END") + pretty, _ := FormatJSON(string(body)) + return pretty +} |
