Add basic CRUD operations for the doselogging and a list command. Signed-off-by: Pratyush Desai <pratyush.desai@liberta.casa>
30 lines
641 B
Go
30 lines
641 B
Go
package main
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"time"
|
|
)
|
|
|
|
func listDoses(db *sql.DB) {
|
|
rows, err := db.Query("SELECT id, time, substance, dose, unit, roa, notes FROM doses ORDER BY time DESC")
|
|
|
|
if err != nil {
|
|
fmt.Println("Failed to query doses:", err)
|
|
return
|
|
}
|
|
defer rows.Close()
|
|
|
|
for rows.Next() {
|
|
var d Dose
|
|
var t string
|
|
rows.Scan(&d.ID, &t, &d.Substance, &d.Dose, &d.Unit, &d.Roa, &d.Notes)
|
|
d.Time, _ = time.Parse(time.RFC3339, t)
|
|
|
|
fmt.Printf("#%d | %s | %s: %.2f %s (%s)\n", d.ID, d.Time.Format("2006-01-02 15:04"), d.Substance, d.Dose, d.Unit, d.Roa)
|
|
if d.Notes != "" {
|
|
fmt.Println(" Notes:", d.Notes)
|
|
}
|
|
}
|
|
}
|