package database import "database/sql" // GetSetting returns the raw string value for key, or def if unset. func GetSetting(db *sql.DB, key, def string) string { var v string err := db.QueryRow(`SELECT value FROM settings WHERE key = ?`, key).Scan(&v) if err != nil { return def } return v } func SetSetting(db *sql.DB, key, value string) error { _, err := db.Exec(`INSERT INTO settings (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value`, key, value) return err } func AllSettings(db *sql.DB) (map[string]string, error) { rows, err := db.Query(`SELECT key, value FROM settings`) if err != nil { return nil, err } defer rows.Close() out := map[string]string{} for rows.Next() { var k, v string if err := rows.Scan(&k, &v); err != nil { return nil, err } out[k] = v } return out, rows.Err() }