diff --git a/internal/service/transaction.go b/internal/service/transaction.go index 9415871..b1a536d 100644 --- a/internal/service/transaction.go +++ b/internal/service/transaction.go @@ -56,7 +56,9 @@ func (s TransactionImpl) Add(tx *sqlx.Tx, user *types.User, transactionInput typ } var err error + ownsTransaction := false if tx == nil { + ownsTransaction = true tx, err = s.db.Beginx() err = db.TransformAndLogDbError("transaction Add", nil, err) if err != nil { @@ -104,10 +106,12 @@ func (s TransactionImpl) Add(tx *sqlx.Tx, user *types.User, transactionInput typ } } - err = tx.Commit() - err = db.TransformAndLogDbError("transaction Add", nil, err) - if err != nil { - return nil, err + if ownsTransaction { + err = tx.Commit() + err = db.TransformAndLogDbError("transaction Add", nil, err) + if err != nil { + return nil, err + } } return transaction, nil