(ctx context.Context, tx Tx, fn func(Tx) error)
| 425 | } |
| 426 | |
| 427 | func beginFuncExec(ctx context.Context, tx Tx, fn func(Tx) error) (err error) { |
| 428 | defer func() { |
| 429 | rollbackErr := tx.Rollback(ctx) |
| 430 | if rollbackErr != nil && !errors.Is(rollbackErr, ErrTxClosed) { |
| 431 | err = rollbackErr |
| 432 | } |
| 433 | }() |
| 434 | |
| 435 | fErr := fn(tx) |
| 436 | if fErr != nil { |
| 437 | _ = tx.Rollback(ctx) // ignore rollback error as there is already an error to return |
| 438 | return fErr |
| 439 | } |
| 440 | |
| 441 | return tx.Commit(ctx) |
| 442 | } |
no test coverage detected