~bigbes/core-go

a7d80e21144407586b415b10ef9c113f5901788d — Drew DeVault 5 years ago 61ab3f0
database: handle Commit/Rollback errors
1 files changed, 6 insertions(+), 2 deletions(-)

M database/middleware.go
M database/middleware.go => database/middleware.go +6 -2
@@ 58,11 58,15 @@ func WithTx(ctx context.Context, opts *sql.TxOptions, fn func(tx *sql.Tx) error)
			tx.Rollback()
			panic(r)
		}
		tx.Commit()
	}()
	err = fn(tx)
	if err != nil {
		tx.Rollback()
		err = tx.Rollback()
	} else {
		err = tx.Commit()
	}
	if err == sql.ErrTxDone {
		err = nil
	}
	return err
}