refactoring

This commit is contained in:
bel
2026-03-08 22:16:53 -06:00
parent d37b6e292f
commit ca3c4d6607
6 changed files with 200 additions and 75 deletions

69
cmd/db.go Normal file
View File

@@ -0,0 +1,69 @@
package cmd
import (
"context"
"database/sql"
"time"
_ "modernc.org/sqlite"
)
type DB struct {
*sql.DB
}
type Cache DB
var cacheAddr = "/tmp/turbomaps-er.db"
func NewCache(ctx context.Context) Cache {
ctx, can := context.WithTimeout(ctx, 5*time.Second)
defer can()
db, err := sql.Open("sqlite", cacheAddr)
if err != nil {
panic(err)
}
if err := db.PingContext(ctx); err != nil {
panic(err)
}
return Cache(DB{DB: db})
}
func (db Cache) Get(ctx context.Context, k string) ([]byte, error) {
if err := db.init(ctx); err != nil {
return nil, err
}
row := db.QueryRowContext(ctx, `
SELECT v FROM cache WHERE k=$1
`, k)
var v []byte
if err := row.Scan(&v); err != nil {
return nil, err
}
return v, row.Err()
}
func (db Cache) Set(ctx context.Context, k string, v []byte) error {
if err := db.init(ctx); err != nil {
return err
}
_, err := db.ExecContext(ctx, `
INSERT INTO cache (k, v) VALUES ($1, $2)
ON CONFLICT DO UPDATE SET v=$2 WHERE k=$1
`, k, v)
return err
}
func (db Cache) init(ctx context.Context) error {
_, err := db.ExecContext(ctx, `
CREATE TABLE IF NOT EXISTS cache(k TEXT PRIMARY KEY, v TEXT)
`)
return err
}