summaryrefslogtreecommitdiff
path: root/cloudflare/http.go
diff options
context:
space:
mode:
Diffstat (limited to 'cloudflare/http.go')
-rw-r--r--cloudflare/http.go110
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
+}