storage

package
v0.0.0-...-80b4807 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2019 License: MIT Imports: 3 Imported by: 0

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.

type TransactionBeginner

type TransactionBeginner interface {
	BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error)
}

TransactionBeginner is an abstraction which allows to start db transaction.

Jump to

Keyboard shortcuts

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