db.Query and db.Exec
parent
1e42085ce6
commit
e85ce38e50
|
|
@ -42,7 +42,9 @@ func NewDB(ctx context.Context, scheme, conn string) (DB, error) {
|
|||
game_uuid TEXT
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS events (
|
||||
game_uuid TEXT
|
||||
game_uuid TEXT,
|
||||
timestamp DATETIME,
|
||||
payload TEXT
|
||||
);
|
||||
`); err != nil {
|
||||
return DB{}, err
|
||||
|
|
@ -51,6 +53,39 @@ func NewDB(ctx context.Context, scheme, conn string) (DB, error) {
|
|||
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) {
|
||||
c, err := sql.Open(db.scheme, db.conn)
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue