Documentation
¶
Index ¶
- Variables
- func GetAccountRepository(uow repository.UnitOfWork, log *slog.Logger) (account.Repository, error)
- func GetTransactionRepository(uow repository.UnitOfWork, log *slog.Logger) (transaction.Repository, error)
- func GetUserRepository(uow repository.UnitOfWork, log *slog.Logger) (user.Repository, error)
- func WithIdempotency(handler eventbus.HandlerFunc, tracker *IdempotencyTracker, ...) eventbus.HandlerFunc
- type IdempotencyTracker
- type KeyExtractor
- type TransactionLookupResult
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
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
Click to show internal directories.
Click to hide internal directories.