fix: prevent race condition on order subtotal calculation
This commit is contained in:
@@ -2,6 +2,7 @@ package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
@@ -37,3 +38,15 @@ func (m *TxManager) WithTransaction(ctx context.Context, fn func(ctx context.Con
|
||||
return fn(ctxTx)
|
||||
})
|
||||
}
|
||||
|
||||
// WithTransactionOptions runs fn inside a DB transaction with custom TxOptions (e.g. isolation level).
|
||||
func (m *TxManager) WithTransactionOptions(ctx context.Context, opts *sql.TxOptions, fn func(ctx context.Context) error) error {
|
||||
if m == nil || m.db == nil {
|
||||
return fn(ctx)
|
||||
}
|
||||
|
||||
return m.db.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
|
||||
ctxTx := context.WithValue(ctx, txKey, tx)
|
||||
return fn(ctxTx)
|
||||
}, opts)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user