common

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidRepositoryType = errors.New("invalid repository type")

Functions

func GetAccountRepository

func GetAccountRepository(
	uow repository.UnitOfWork,
	log *slog.Logger,
) (
	account.Repository,
	error,
)

func GetTransactionRepository

func GetTransactionRepository(
	uow repository.UnitOfWork,
	log *slog.Logger,
) (
	transaction.Repository,
	error,
)

func GetUserRepository added in v1.4.0

func GetUserRepository(
	uow repository.UnitOfWork,
	log *slog.Logger,
) (
	user.Repository,
	error,
)

func WithIdempotency added in v1.5.0

func WithIdempotency(
	handler eventbus.HandlerFunc,
	tracker *IdempotencyTracker,
	keyExtractor KeyExtractor,
	handlerName string,
	logger *slog.Logger,
) eventbus.HandlerFunc

WithIdempotency wraps a handler with idempotency checking middleware. The middleware checks if the event has been processed before calling the handler, and marks it as processed after successful execution.

Types

type IdempotencyTracker added in v1.5.0

type IdempotencyTracker struct {
	// contains filtered or unexported fields
}

IdempotencyTracker tracks processed events by key

func NewIdempotencyTracker added in v1.5.0

func NewIdempotencyTracker() *IdempotencyTracker

NewIdempotencyTracker creates a new idempotency tracker

func (*IdempotencyTracker) Delete added in v1.5.0

func (t *IdempotencyTracker) Delete(key string)

Delete removes a key from the tracker

func (*IdempotencyTracker) IsProcessed added in v1.5.3

func (t *IdempotencyTracker) IsProcessed(key string) bool

func (*IdempotencyTracker) Store added in v1.5.0

func (t *IdempotencyTracker) Store(key string)

Store marks a key as processed

type KeyExtractor added in v1.5.0

type KeyExtractor func(events.Event) string

KeyExtractor extracts an idempotency key from an event

type TransactionLookupResult added in v1.5.0

type TransactionLookupResult struct {
	Transaction   *dto.TransactionRead
	TransactionID uuid.UUID
	Found         bool
	Error         error
}

TransactionLookupResult contains transaction lookup result

func LookupTransactionByPaymentOrID added in v1.5.0

func LookupTransactionByPaymentOrID(
	ctx context.Context,
	txRepo transaction.Repository,
	paymentID *string,
	transactionID uuid.UUID,
	log *slog.Logger,
) TransactionLookupResult

LookupTransactionByPaymentOrID looks up a transaction by payment ID or transaction ID

Jump to

Keyboard shortcuts

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