Versions in this module Expand all Collapse all v0 v0.0.1 Jul 4, 2022 Changes in this version + var ErrAccountInactive = errors.New("the account related to the transaction must be active") + var ErrAccountNotfound = errors.New("the to account could be found") + var ErrBalanceInsufficientFunds = errors.New("insufficient funds to complete the transaction") + var ErrFailLockAccount = errors.New("was not possible to lock account to process the operation") + var ErrFromAccountToAccountShouldBeDifferent = errors.New("the from account and to account should not be equal") + var ErrGetAccountBalance = errors.New("received error when get the account balance") + var ErrInsufficientDailyLimit = errors.New("the account has insufficient daily limit") + var ErrMultpleTransactionsFound = errors.New("multiple transactions found with these filters") + var ErrTransactionNotFound = errors.New("no transaction found with these filters") + type MockRepository struct + func NewMockRepository(ctrl *gomock.Controller) *MockRepository + func (m *MockRepository) Create(ctx context.Context, model transactionModel) (transactionModel, error) + func (m *MockRepository) EXPECT() *MockRepositoryMockRecorder + func (m *MockRepository) GetByFilter(ctx context.Context, filter transactionFilter) ([]transactionModel, error) + type MockRepositoryMockRecorder struct + func (mr *MockRepositoryMockRecorder) Create(ctx, model interface{}) *gomock.Call + func (mr *MockRepositoryMockRecorder) GetByFilter(ctx, filter interface{}) *gomock.Call + type Repository interface + Create func(ctx context.Context, model transactionModel) (transactionModel, error) + GetByFilter func(ctx context.Context, filter transactionFilter) ([]transactionModel, error) + func NewRepository(t tracer.Tracer, db database.Database) Repository + type Service interface + CreateCredit func(ctx context.Context, transaction Transaction) (Transaction, error) + CreateDebit func(ctx context.Context, transaction Transaction) (Transaction, error) + CreateP2P func(ctx context.Context, transaction Transaction) (Transaction, error) + GetByID func(ctx context.Context, id uuid.UUID) (Transaction, error) + func NewService(t tracer.Tracer, r Repository, l distlock.DistLock, as accounts.Service, ...) Service + type Transaction struct + Amount float64 + Description string + From uuid.UUID + ID uuid.UUID + To uuid.UUID + Type TransactionType + type TransactionType string + var CreditTransaction TransactionType = "CREDIT" + var DebitTransaction TransactionType = "DEBIT" + var P2PTransaction TransactionType = "P2P"