Documentation
¶
Index ¶
- type Account
- type AddAccountBalanceParams
- type CreateAccountParams
- type CreateEntryParams
- type CreateTransferParams
- type CreateUserParams
- type DBTX
- type Entry
- type ListAccountsParams
- type ListEntriesParams
- type ListTransfersParams
- type Querier
- type Queries
- func (q *Queries) AddAccountBalance(ctx context.Context, arg AddAccountBalanceParams) (Account, error)
- func (q *Queries) CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error)
- func (q *Queries) CreateEntry(ctx context.Context, arg CreateEntryParams) (Entry, error)
- func (q *Queries) CreateTransfer(ctx context.Context, arg CreateTransferParams) (Transfer, error)
- func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error)
- func (q *Queries) DeleteAccount(ctx context.Context, id int64) error
- func (q *Queries) GetAccount(ctx context.Context, id int64) (Account, error)
- func (q *Queries) GetAccountForUpdate(ctx context.Context, id int64) (Account, error)
- func (q *Queries) GetEntry(ctx context.Context, id int64) (Entry, error)
- func (q *Queries) GetTransfer(ctx context.Context, id int64) (Transfer, error)
- func (q *Queries) GetUser(ctx context.Context, username string) (User, error)
- func (q *Queries) ListAccounts(ctx context.Context, arg ListAccountsParams) ([]Account, error)
- func (q *Queries) ListEntries(ctx context.Context, arg ListEntriesParams) ([]Entry, error)
- func (q *Queries) ListTransfers(ctx context.Context, arg ListTransfersParams) ([]Transfer, error)
- func (q *Queries) UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error)
- func (q *Queries) WithTx(tx *sql.Tx) *Queries
- type SQLStore
- type Store
- type Transfer
- type TransferTxParams
- type TransferTxResult
- type UpdateAccountParams
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddAccountBalanceParams ¶
type CreateAccountParams ¶
type CreateEntryParams ¶
type CreateTransferParams ¶
type CreateUserParams ¶
type ListAccountsParams ¶
type ListEntriesParams ¶
type ListTransfersParams ¶
type Querier ¶
type Querier interface { AddAccountBalance(ctx context.Context, arg AddAccountBalanceParams) (Account, error) CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error) CreateEntry(ctx context.Context, arg CreateEntryParams) (Entry, error) CreateTransfer(ctx context.Context, arg CreateTransferParams) (Transfer, error) CreateUser(ctx context.Context, arg CreateUserParams) (User, error) DeleteAccount(ctx context.Context, id int64) error GetAccount(ctx context.Context, id int64) (Account, error) GetAccountForUpdate(ctx context.Context, id int64) (Account, error) GetEntry(ctx context.Context, id int64) (Entry, error) GetTransfer(ctx context.Context, id int64) (Transfer, error) GetUser(ctx context.Context, username string) (User, error) ListAccounts(ctx context.Context, arg ListAccountsParams) ([]Account, error) ListEntries(ctx context.Context, arg ListEntriesParams) ([]Entry, error) ListTransfers(ctx context.Context, arg ListTransfersParams) ([]Transfer, error) UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error) }
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) AddAccountBalance ¶
func (*Queries) CreateAccount ¶
func (*Queries) CreateEntry ¶
func (*Queries) CreateTransfer ¶
func (*Queries) CreateUser ¶
func (*Queries) DeleteAccount ¶
func (*Queries) GetAccount ¶
func (*Queries) GetAccountForUpdate ¶
func (*Queries) GetTransfer ¶
func (*Queries) ListAccounts ¶
func (*Queries) ListEntries ¶
func (*Queries) ListTransfers ¶
func (*Queries) UpdateAccount ¶
type SQLStore ¶
type SQLStore struct { *Queries // queries struct do not support transaction (only one operation on one specific table), so we need to extend its functionality by embedding it inside a struct (called composition), all individual query functions provided by Queries will be available to Store // contains filtered or unexported fields }
SQLStore provides all functions to execute SQL queries and transactions (Tx); real db
func (*SQLStore) TransferTx ¶
func (store *SQLStore) TransferTx(ctx context.Context, arg TransferTxParams) (TransferTxResult, error)
TransferTx performs a money transfer from one account to the other. It creates the transfer, add account entries, and update accounts' balance within a single database transaction:
type Store ¶
type Store interface { Querier TransferTx(ctx context.Context, arg TransferTxParams) (TransferTxResult, error) }
Store provides all functions to execute db queries and transactions (Tx); mock db
type TransferTxParams ¶
type TransferTxParams struct { FromAccountID int64 `json:"from_account_id"` // Add "tags" to customize JSON keys ToAccountID int64 `json:"to_account_id"` // JSON encoder (from json package) can only see, and therefore only encode, exported fields in a struct. Amount int64 `json:"amount"` // only the identifiers that start with a captial letter are exported from your package }
TransferTxParams contains the input parameters of the transfer transaction (the function "TransferTx" below)
type TransferTxResult ¶
type TransferTxResult struct { Transfer Transfer `json:"transfer"` FromAccount Account `json:"from_account"` ToAccount Account `json:"to_account"` FromEntry Entry `json:"from_entry"` ToEntry Entry `json:"to_entry"` }
TransferTxResult is the result of the transfer transaction (the function "TransferTx" below)
type UpdateAccountParams ¶
Click to show internal directories.
Click to hide internal directories.