diff options
Diffstat (limited to 'db.go')
| -rw-r--r-- | db.go | 63 |
1 files changed, 63 insertions, 0 deletions
@@ -0,0 +1,63 @@ +package main + +import ( + "encoding/csv" + "errors" + "log" + "os" + "time" +) + +func readAll() [][]string { + f, err := os.Open("bowl.csv") + defer f.Close() + if err != nil { + if errors.Is(err, os.ErrNotExist) { + f, _ = os.Create("bowl.csv") + _, err := f.Write([]byte("#type,notes,datetime,ip\n")) + if err != nil { + log.Fatalf("error writing to file: %s\n", err) + } + } else { + log.Fatalf("failed to open file: %s\n", err) + } + } + + r := csv.NewReader(f) + records, err := r.ReadAll() + if err != nil { + log.Fatalf("failed to read file: %s\n", err) + } + + return records +} + +func write(formType string, formNotes string, ip string) { + records := readAll() + + f, err := os.Create("bowl.csv") + defer f.Close() + if err != nil { + if errors.Is(err, os.ErrNotExist) { + f, _ = os.Create("bowl.csv") + _, err := f.Write([]byte("#type,notes,datetime,ip\n")) + if err != nil { + log.Fatalf("error writing to file: %s\n", err) + } + } else { + log.Fatalf("failed to open file: %s\n", err) + } + } + + records = append(records, []string{ + formType, formNotes, time.Now().String(), ip, + }) + + w := csv.NewWriter(f) + defer w.Flush() + + err = w.WriteAll(records) + if err != nil { + log.Fatalf("error writing entry to file: %s\n", err) + } +} |