summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-05 18:52:47 -0600
committerJeff Carr <[email protected]>2024-01-05 18:52:47 -0600
commitd3536a2b2881c6103bd39fb14ffa0b8484c3edc5 (patch)
treedc627890bfb54879b4e52f480d1cb68038da219b
parentc641154bf9c196bd43d588cab63c41b84ff38fec (diff)
cloudflare API changed
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--api.go46
-rw-r--r--args.go20
-rw-r--r--http.go3
-rw-r--r--mainWindow.go1
-rw-r--r--zonesBox.go40
5 files changed, 93 insertions, 17 deletions
diff --git a/api.go b/api.go
index 41ddae6..1a56423 100644
--- a/api.go
+++ b/api.go
@@ -99,37 +99,46 @@ func SetRow(dnsRow *RRT) {
}
func GetZonefile(c *ConfigT) *DNSRecords {
- var url = cloudflareURL + c.ZoneID + "/dns_records/?per_page=100"
+ var url = cloudflareURL + c.ZoneID + "/dns_records/?per_page=10"
log.Println("getZonefile()", c.Domain, url)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
- log.Println("http.NewRequest error:", err)
+ log.Error(err, "http.NewRequest error")
return nil
}
// Set headers
- req.Header.Set("X-Auth-Key", c.Auth)
- req.Header.Set("X-Auth-Email", c.Email)
+ req.Header.Set("Authorization", "Bearer " + c.Auth)
+ // req.Header.Set("X-Auth-Key", c.Auth)
+ // req.Header.Set("X-Auth-Email", c.Email)
log.Println("getZonefile() auth, email", c.Auth, c.Email)
client := &http.Client{}
resp, err := client.Do(req)
+ // log.Spew("SPEWING", resp)
if err != nil {
- log.Println("http.Client error:", err)
+ log.Error(err, "http.Client error")
return nil
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
- log.Println("ioutil.ReadAll() error", err)
+ log.Error(err, "ioutil.ReadAll() error")
return nil
}
+ log.Spew("SPEWING", body)
+ pretty, err := FormatJSON(string(body))
+ if err != nil {
+ log.Error(err, "FormatJSON error")
+ } else {
+ log.Warn(pretty)
+ }
var records DNSRecords
if err := json.Unmarshal(body, &records); err != nil {
- log.Println("json.Unmarshal() error", err)
+ log.Error(err, "json.Unmarshal() error")
return nil
}
@@ -166,35 +175,42 @@ func GetZones(auth, email string) *DNSRecords {
log.Println("getZones()", url)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
- log.Println("http.NewRequest error:", err)
+ log.Error(err, "http.NewRequest error")
return nil
}
// Set headers
- req.Header.Set("X-Auth-Key", auth)
- req.Header.Set("X-Auth-Email", email)
+ req.Header.Set("Authorization", "Bearer " + auth)
+ // req.Header.Set("X-Auth-Key", auth)
+ // req.Header.Set("X-Auth-Email", email)
log.Println("getZones() auth, email", auth, email)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
- log.Println("getZones() http.Client error:", err)
+ log.Error(err, "getZones() http.Client error")
return nil
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
- log.Println("getZones() ioutil.ReadAll() error", err)
+ log.Error(err, "getZones() ioutil.ReadAll() error")
return nil
}
var records DNSRecords
if err := json.Unmarshal(body, &records); err != nil {
- log.Println("getZones() json.Unmarshal() error", err)
+ log.Error(err, "getZones() json.Unmarshal() error")
return nil
}
+ pretty, err := FormatJSON(string(body))
+ if err != nil {
+ log.Error(err, "FormatJSON error")
+ } else {
+ log.Warn(pretty)
+ }
/* Cloudflare API returns struct[] of:
struct { ID string "json:\"id\""; Type string "json:\"type\""; Name string "json:\"name\"";
@@ -206,8 +222,8 @@ func GetZones(auth, email string) *DNSRecords {
// log.Println("spew dump:")
// spew.Dump(records)
for _, record := range records.Result {
- log.Println("spew record:", record)
- log.Println("record:", record.Name, record.ID)
+ log.Spew("spew record:", record)
+ log.Info("record:", record.Name, record.ID)
var newc *ConfigT
newc = new(ConfigT)
diff --git a/args.go b/args.go
new file mode 100644
index 0000000..6ecea2d
--- /dev/null
+++ b/args.go
@@ -0,0 +1,20 @@
+package cloudflare
+
+// initializes logging and command line options
+
+import (
+ "go.wit.com/log"
+)
+
+var CURL log.LogFlag
+var POLL log.LogFlag
+var BUG log.LogFlag
+
+func init() {
+ CURL.B = true
+ CURL.Name = "CURL"
+ CURL.Subsystem = "cloudflare"
+ CURL.Short = "gui cf"
+ CURL.Desc = "curl interactions()"
+ CURL.Register()
+}
diff --git a/http.go b/http.go
index f976b96..ec6869e 100644
--- a/http.go
+++ b/http.go
@@ -180,8 +180,7 @@ func curlPost(dnsRow *RRT) string {
log.Println(err)
return ""
}
- // log.Println("http PUT body =", body)
- // spew.Dump(body)
+ log.Spew("http PUT body =", body)
log.Println("result =", string(body))
log.Println("curl() END")
diff --git a/mainWindow.go b/mainWindow.go
index 7d19e1c..c571893 100644
--- a/mainWindow.go
+++ b/mainWindow.go
@@ -16,6 +16,7 @@ func MakeCloudflareWindow(n *gui.Node) *gadgets.BasicWindow {
log.Println("buttonWindow() START")
CFdialog.mainWindow = gadgets.NewBasicWindow(n,"Cloudflare Config")
+ CFdialog.mainWindow.Vertical()
// this tab has the master cloudflare API credentials
makeConfigWindow(CFdialog.mainWindow.Box())
diff --git a/zonesBox.go b/zonesBox.go
new file mode 100644
index 0000000..38ef78f
--- /dev/null
+++ b/zonesBox.go
@@ -0,0 +1,40 @@
+// This is a simple example
+package cloudflare
+
+import (
+ "go.wit.com/log"
+ "go.wit.com/gui/gui"
+)
+
+func drawZoneBox(box *gui.Node) {
+ g1 := box.NewGroup("zones")
+
+ // make dropdown list of zones
+ CFdialog.zonedrop = g1.NewDropdown("zone")
+ CFdialog.zonedrop.AddText("example.org")
+ for d, _ := range Config {
+ CFdialog.zonedrop.AddText(d)
+ }
+ CFdialog.zonedrop.AddText("stablesid.org")
+
+ CFdialog.zonedrop.Custom = func () {
+ domain := CFdialog.zonedrop.S
+ log.Println("custom dropdown() zone (domain name) =", CFdialog.zonedrop.Name, domain)
+ if (Config[domain] == nil) {
+ log.Println("custom dropdown() Config[domain] = nil for domain =", domain)
+ CFdialog.domainWidget.SetText(domain)
+ CFdialog.zoneWidget.SetText("")
+ CFdialog.authWidget.SetText("")
+ CFdialog.emailWidget.SetText("")
+ } else {
+ log.Println("custom dropdown() a =", domain, Config[domain].ZoneID, Config[domain].Auth, Config[domain].Email)
+ CFdialog.domainWidget.SetText(Config[domain].Domain)
+ CFdialog.zoneWidget.SetText(Config[domain].ZoneID)
+ CFdialog.authWidget.SetText(Config[domain].Auth)
+ CFdialog.emailWidget.SetText(Config[domain].Email)
+ }
+ }
+
+ more := g1.NewGroup("data")
+ showCloudflareCredentials(more)
+}