Change summary
root.go | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
Detailed changes
@@ -1,9 +1,13 @@
package main
import (
+ "fmt"
"io"
"log"
"net/http"
+ "text/template"
+
+ "github.com/dgraph-io/badger/v3"
)
func (m model) root(writer http.ResponseWriter, request *http.Request) {
@@ -22,6 +26,37 @@ func (m model) root(writer http.ResponseWriter, request *http.Request) {
if err != nil {
log.Fatalln(err)
}
- io.WriteString(writer, string(dash))
+ tmpl, err := template.New("authenticated").Parse(string(dash))
+ tmpl.Execute(writer, m.genTable())
+ }
+}
+
+func (m model) genTable() string {
+ var table string
+ err := m.database.View(func(txn *badger.Txn) error {
+ opts := badger.DefaultIteratorOptions
+ opts.PrefetchSize = 10
+ iterator := txn.NewIterator(opts)
+ defer iterator.Close()
+ for iterator.Rewind(); iterator.Valid(); iterator.Next() {
+ item := iterator.Item()
+ k := item.Key()
+ err := item.Value(func(v []byte) error {
+ table = table + fmt.Sprintf(`<tr>
+ <td><p>%s</p></td>
+ <td><p>%s</p></td>
+ <td><button>Edit</button><button>Delete</button></td>
+</tr>`, k, v)
+ return nil
+ })
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+ })
+ if err != nil {
+ return err.Error()
}
+ return table
}