Skip to content

go-utils/transactions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

transactions

Simply transactions

Usage

package main

import (
	"context"
	"errors"

	"github.com/go-utils/transactions"
)

var failure = errors.New("failure")

func main() {
	ctx := context.Background()

	onTransaction := transactions.OnTransaction(
		func(ctx context.Context) error {
			return failure
		},
	)

	onRollback := transactions.OnRollback(
		func(ctx context.Context, err error) error {
			if !errors.Is(err, failure) {
				return errors.New("is not `failure` error")
			}
			return nil
		},
	)

	transaction := transactions.New(onTransaction, onRollback)


	if err := transaction.Execute(ctx); err != nil {
		panic(err)
	}
}

License

MIT

Releases

No releases published

Packages

No packages published