diff options
| author | Lizzy Hunt <lizzy.hunt@usu.edu> | 2024-03-29 16:35:04 -0600 |
|---|---|---|
| committer | Lizzy Hunt <lizzy.hunt@usu.edu> | 2024-03-29 16:35:04 -0600 |
| commit | 5080c566ac31ec622986c04f1812a1e88c88210e (patch) | |
| tree | d8dbaa766ef21b098c5740880facc2989c750295 /database/guestbook.go | |
| parent | 7cc13887eae7dd2a61900751e038d273313d077f (diff) | |
| download | hatecomputers.club-5080c566ac31ec622986c04f1812a1e88c88210e.tar.gz hatecomputers.club-5080c566ac31ec622986c04f1812a1e88c88210e.zip | |
guestbook!
Diffstat (limited to 'database/guestbook.go')
| -rw-r--r-- | database/guestbook.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/database/guestbook.go b/database/guestbook.go new file mode 100644 index 0000000..2d4d8c9 --- /dev/null +++ b/database/guestbook.go @@ -0,0 +1,50 @@ +package database + +import ( + "database/sql" + "log" + "time" + + _ "github.com/mattn/go-sqlite3" +) + +type GuestbookEntry struct { + ID string `json:"id"` + Name string `json:"name"` + Message string `json:"message"` + CreatedAt time.Time `json:"created_at"` +} + +func GetGuestbookEntries(db *sql.DB) ([]GuestbookEntry, error) { + log.Println("getting guest_book entries") + + rows, err := db.Query("SELECT * FROM guest_book ORDER BY created_at DESC LIMIT 200") + if err != nil { + return nil, err + } + defer rows.Close() + + var entries []GuestbookEntry + for rows.Next() { + var entry GuestbookEntry + err := rows.Scan(&entry.ID, &entry.Name, &entry.Message, &entry.CreatedAt) + if err != nil { + return nil, err + } + entries = append(entries, entry) + } + + return entries, nil +} + +func SaveGuestbookEntry(db *sql.DB, entry *GuestbookEntry) (*GuestbookEntry, error) { + log.Println("saving guest_book entry", entry.ID) + + entry.CreatedAt = time.Now() + _, err := db.Exec("INSERT OR REPLACE INTO guest_book (id, name, message, created_at) VALUES (?, ?, ?, ?)", entry.ID, entry.Name, entry.Message, entry.CreatedAt) + + if err != nil { + return nil, err + } + return entry, nil +} |
