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
|
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 {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue