dns-api: add debug endpoint

Change-Id: I7e2a6546884b43ad9b377d19b480efd52e905c32
diff --git a/core/dns-api/main.go b/core/dns-api/main.go
index c3d429d..f1f9250 100644
--- a/core/dns-api/main.go
+++ b/core/dns-api/main.go
@@ -2,6 +2,7 @@
 
 import (
 	"flag"
+	"fmt"
 	"strings"
 )
 
@@ -23,8 +24,10 @@
 	if err != nil {
 		panic(err)
 	}
-	if err := store.Log(); err != nil {
+	if all, err := store.All(); err != nil {
 		panic(err)
+	} else {
+		fmt.Println(all)
 	}
 	server := NewServer(*port, *zone, ds, store, nameserverIP)
 	server.Start()
diff --git a/core/dns-api/server.go b/core/dns-api/server.go
index d67ccf6..1156d8d 100644
--- a/core/dns-api/server.go
+++ b/core/dns-api/server.go
@@ -2,6 +2,7 @@
 
 import (
 	"encoding/json"
+	"io"
 	"fmt"
 	"net/http"
 	"strings"
@@ -34,6 +35,7 @@
 	m.HandleFunc("/create-a-record", s.createARecord)
 	m.HandleFunc("/delete-a-record", s.deleteARecord)
 	m.HandleFunc("/delete-txt-record", s.deleteTxtRecord)
+	m.HandleFunc("/", s.getAll)
 	return s
 }
 
@@ -41,10 +43,13 @@
 	return s.s.ListenAndServe()
 }
 
-type record struct {
-	Domain string `json:"domain,omitempty"`
-	Entry  string `json:"entry,omitempty"`
-	Text   string `json:"text,omitempty"`
+func (s *Server) getAll(w http.ResponseWriter, r *http.Request) {
+	all, err := s.store.All()
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	io.WriteString(w, all)
 }
 
 func (s *Server) recordsToPublish(w http.ResponseWriter, r *http.Request) {
@@ -65,6 +70,12 @@
 	}
 }
 
+type record struct {
+	Domain string `json:"domain,omitempty"`
+	Entry  string `json:"entry,omitempty"`
+	Text   string `json:"text,omitempty"`
+}
+
 func (s *Server) createTxtRecord(w http.ResponseWriter, r *http.Request) {
 	var req record
 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
diff --git a/core/dns-api/store.go b/core/dns-api/store.go
index 8dfd914..588a2f2 100644
--- a/core/dns-api/store.go
+++ b/core/dns-api/store.go
@@ -7,7 +7,7 @@
 )
 
 type RecordStore interface {
-	Log() error
+	All() (string, error)
 	Add(entry, txt string) error
 	AddARecord(entry, ip string) error
 	Delete(entry, txt string) error
@@ -21,14 +21,17 @@
 	db       string
 }
 
-func (s *fsRecordStore) Log() error {
+func (s *fsRecordStore) All() (string, error) {
 	r, err := s.fs.Reader(s.db)
 	if err != nil {
-		return err
+		return "", err
 	}
 	defer r.Close()
-	_, err = io.Copy(os.Stdout, r)
-	return err
+	ret, err := io.ReadAll(r)
+	if err != nil {
+		return "", err
+	}
+	return string(ret), nil
 }
 
 func (s *fsRecordStore) read() (*RecordsFile, error) {