29 lines
647 B
Go
29 lines
647 B
Go
package utils
|
|
|
|
// func WithTx(ctx context.Context, opts *sql.TxOptions, q mysql.Querier, db *sql.DB, f func(mysql.Querier) error) error {
|
|
// w, ok := q.(interface {
|
|
// WithTx(tx *sql.Tx) *mysql.Queries
|
|
// })
|
|
// var tx *sql.Tx
|
|
// if ok {
|
|
// var err error
|
|
// tx, err = db.BeginTx(ctx, opts)
|
|
// if err != nil {
|
|
// return fmt.Errorf("WithTx: %w", err)
|
|
// }
|
|
// defer tx.Rollback()
|
|
// q = w.WithTx(tx)
|
|
// }
|
|
// err := f(q)
|
|
// if err != nil {
|
|
// return fmt.Errorf("WithTx: %w", err)
|
|
// }
|
|
// if tx != nil {
|
|
// err := tx.Commit()
|
|
// if err != nil {
|
|
// return fmt.Errorf("WithTx: %w", err)
|
|
// }
|
|
// }
|
|
// return nil
|
|
// }
|