From 2f3ad262672df31b3ce6662765e0f2a9deb41df7 Mon Sep 17 00:00:00 2001 From: Alexandre Oliveira Date: Mon, 2 Nov 2020 19:01:00 +0100 Subject: [PATCH] Add working example --- _example/main.go | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 _example/main.go diff --git a/_example/main.go b/_example/main.go new file mode 100644 index 0000000..045052a --- /dev/null +++ b/_example/main.go @@ -0,0 +1,74 @@ +package main + +import ( + "context" + "fmt" + "time" + + "github.com/libdns/libdns" + + "github.com/libdns/vultr" +) + +func main() { + token := os.Getenv("VULTR_API_TOKEN") + if token == "" { + fmt.Printf("VULTR_API_TOKEN not set\n") + return + } + zone := os.Getenv("ZONE") + if zone == "" { + fmt.Printf("ZONE not set\n") + return + } + + provider := vultr.Provider{APIToken: token} + + records, err := provider.GetRecords(context.TODO(), zone) + if err != nil { + fmt.Printf("ERROR: %s\n", err.Error()) + } + + testName := "libdns-test" + testId := "" + for _, record := range records { + fmt.Printf("%s (.%s): %s, %s\n", record.Name, zone, record.Value, record.Type) + if record.Name == testName { + testId = record.ID + } + } + + + if testId != "" { + // fmt.Printf("Delete entry for %s (id:%s)\n", testName, testId) + // _, err = provider.DeleteRecords(context.TODO(), zone, []libdns.Record{libdns.Record{ + // ID: testId, + // }}) + // if err != nil { + // fmt.Printf("ERROR: %s\n", err.Error()) + // } + // Set only works if we have a record.ID + fmt.Printf("Replacing entry for %s\n", testName) + _, err = provider.SetRecords(context.TODO(), zone, []libdns.Record{libdns.Record{ + Type: "TXT", + Name: testName, + Value: fmt.Sprintf("\"Replacement test entry created by libdns %s\"", time.Now()), + TTL: time.Duration(30) * time.Second, + ID: testId, + }}) + if err != nil { + fmt.Printf("ERROR: %s\n", err.Error()) + } + } else { + fmt.Printf("Creating new entry for %s\n", testName) + _, err = provider.AppendRecords(context.TODO(), zone, []libdns.Record{libdns.Record{ + Type: "TXT", + Name: testName, + Value: fmt.Sprintf("\"This is a test entry created by libdns %s\"", time.Now()), + TTL: time.Duration(30) * time.Second, + }}) + if err != nil { + fmt.Printf("ERROR: %s\n", err.Error()) + } + } +} \ No newline at end of file