dbconn

package
v0.0.0-...-17fba16 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DB *sql.DB
)
View Source
var RunTx = func(ctx context.Context, fn func(context.Context) error) (err error) {
	tx, err := DB.BeginTx(ctx, nil)
	if err != nil {
		return err
	}

	defer func() {
		if r := recover(); r != nil || err != nil {
			fmt.Println("Rollback transaction due to panic or error")
			if rbErr := tx.Rollback(); rbErr != nil {
				fmt.Printf("Rollback error: %v\n", rbErr)
			}
			if r != nil {
				err = fmt.Errorf("panic occurred: %v", r)
			}
		}
	}()

	ctx = context.WithValue(ctx, ctxTxKey, tx)

	if err = fn(ctx); err != nil {
		return err
	}

	if err = tx.Commit(); err != nil {
		return err
	}

	return nil
}

Functions

func GetContextExecutor

func GetContextExecutor(ctx context.Context) boil.ContextExecutor

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL