db.Query and db.Exec

main
bel 2024-12-14 21:19:04 -07:00
parent 1e42085ce6
commit e85ce38e50
1 changed files with 36 additions and 1 deletions

View File

@ -42,7 +42,9 @@ func NewDB(ctx context.Context, scheme, conn string) (DB, error) {
game_uuid TEXT game_uuid TEXT
); );
CREATE TABLE IF NOT EXISTS events ( CREATE TABLE IF NOT EXISTS events (
game_uuid TEXT game_uuid TEXT,
timestamp DATETIME,
payload TEXT
); );
`); err != nil { `); err != nil {
return DB{}, err return DB{}, err
@ -51,6 +53,39 @@ func NewDB(ctx context.Context, scheme, conn string) (DB, error) {
return db, err return db, err
} }
func (db DB) Exec(ctx context.Context, q string, args ...any) error {
c, err := db.dial(ctx)
if err != nil {
return err
}
defer c.Close()
_, err = c.ExecContext(ctx, q, args...)
return err
}
func (db DB) Query(ctx context.Context, cb func(*sql.Rows) error, q string, args ...any) error {
c, err := db.dial(ctx)
if err != nil {
return err
}
defer c.Close()
rows, err := c.QueryContext(ctx, q, args...)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
if err := cb(rows); err != nil {
return err
}
}
return rows.Err()
}
func (db DB) dial(ctx context.Context) (*sql.DB, error) { func (db DB) dial(ctx context.Context) (*sql.DB, error) {
c, err := sql.Open(db.scheme, db.conn) c, err := sql.Open(db.scheme, db.conn)
if err != nil { if err != nil {