Documentation ¶
Overview ¶
Package storage contains a set of interfaces to be implemented by persistance repositories (e.g. database, memory stores etc)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Queryable ¶
type Queryable interface { ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row Exec(query string, args ...interface{}) (sql.Result, error) Query(query string, args ...interface{}) (*sql.Rows, error) QueryRow(query string, args ...interface{}) *sql.Row }
Queryable is an abstraction with common methods to interact with database. It is a common interface for both *sql.DB and *sql.Tx.
type Storage ¶
type Storage interface { BeginTx(ctx context.Context, opts *sql.TxOptions) (Storage, error) CommitTx(ctx context.Context) error RollbackTx(ctx context.Context) error CreateAccount(ctx context.Context, accountName string) (entities.Account, error) GetAccountsList(ctx context.Context) ([]entities.Account, error) GetPaymentsList(ctx context.Context) ([]entities.Payment, error) GetAccountForUpdate(ctx context.Context, account *entities.Account) error CreateTransaction(ctx context.Context) (entities.Transaction, error) SendPayment(ctx context.Context, payment entities.Payment) error SetAccountBalance(ctx context.Context, account entities.Account) error }
Storage is an abstraction unifying methods for objects persistance.
Click to show internal directories.
Click to hide internal directories.