receipt_indexer/backend/internal/storage/sql.go
Ethan Wellenreiter 10de7d3749 Moving and adjusting interfaces and related structs
Signed-off-by: Ethan Wellenreiter <ewellenreiter@gmail.com>
2025-05-05 22:05:50 -04:00

26 lines
348 B
Go

package storage
import (
"context"
"database/sql"
"time"
)
var (
QueryTimeoutDuration = time.Second * 5
)
func withTx(db *sql.DB, ctx context.Context, fn func(*sql.Tx) error) error {
tx, err := db.BeginTx(ctx, nil)
if err != nil {
return err
}
if err := fn(tx); err != nil {
_ = tx.Rollback()
return err
}
return tx.Commit()
}