Documentation
¶
Index ¶
- type Account
- type CreateAccountParams
- type CreateEntryParams
- type CreateUserParams
- type CreateUserRow
- type DBTX
- type Entry
- type ListEntriesByAccountParams
- type NullOperationType
- type OperationType
- type Querier
- type Queries
- 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) CreateUser(ctx context.Context, arg CreateUserParams) (CreateUserRow, error)
- func (q *Queries) GetAccount(ctx context.Context, id uuid.UUID) (Account, error)
- func (q *Queries) GetAccountBalance(ctx context.Context, accountID uuid.UUID) (string, error)
- func (q *Queries) GetAccountForUpdate(ctx context.Context, id uuid.UUID) (Account, error)
- func (q *Queries) GetSettlementAccount(ctx context.Context) (Account, error)
- func (q *Queries) GetSettlementAccountForUpdate(ctx context.Context) (Account, error)
- func (q *Queries) GetUserByEmail(ctx context.Context, email string) (User, error)
- func (q *Queries) ListAccountsByOwner(ctx context.Context, ownerID uuid.NullUUID) ([]Account, error)
- func (q *Queries) ListEntriesByAccount(ctx context.Context, arg ListEntriesByAccountParams) ([]Entry, error)
- func (q *Queries) ListEntriesByTransaction(ctx context.Context, transactionID uuid.UUID) ([]Entry, error)
- func (q *Queries) UpdateAccountBalance(ctx context.Context, arg UpdateAccountBalanceParams) error
- func (q *Queries) WithTx(tx *sql.Tx) *Queries
- type UpdateAccountBalanceParams
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CreateAccountParams ¶
type CreateEntryParams ¶
type CreateEntryParams struct {
AccountID uuid.UUID `json:"account_id"`
Debit string `json:"debit"`
Credit string `json:"credit"`
TransactionID uuid.UUID `json:"transaction_id"`
OperationType OperationType `json:"operation_type"`
Description sql.NullString `json:"description"`
}
type CreateUserParams ¶
type CreateUserRow ¶
type Entry ¶
type Entry struct {
ID uuid.UUID `json:"id"`
AccountID uuid.UUID `json:"account_id"`
Debit string `json:"debit"`
Credit string `json:"credit"`
TransactionID uuid.UUID `json:"transaction_id"`
OperationType OperationType `json:"operation_type"`
Description sql.NullString `json:"description"`
CreatedAt sql.NullTime `json:"created_at"`
}
type NullOperationType ¶
type NullOperationType struct {
OperationType OperationType `json:"operation_type"`
Valid bool `json:"valid"` // Valid is true if OperationType is not NULL
}
func (*NullOperationType) Scan ¶
func (ns *NullOperationType) Scan(value interface{}) error
Scan implements the Scanner interface.
type OperationType ¶
type OperationType string
const ( OperationTypeDeposit OperationType = "deposit" OperationTypeWithdrawal OperationType = "withdrawal" OperationTypeTransfer OperationType = "transfer" )
func (*OperationType) Scan ¶
func (e *OperationType) Scan(src interface{}) error
type Querier ¶
type Querier interface {
CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error)
CreateEntry(ctx context.Context, arg CreateEntryParams) (Entry, error)
CreateUser(ctx context.Context, arg CreateUserParams) (CreateUserRow, error)
GetAccount(ctx context.Context, id uuid.UUID) (Account, error)
// lock prevents concurrent transactions from reading a stale balance.
GetAccountBalance(ctx context.Context, accountID uuid.UUID) (string, error)
GetAccountForUpdate(ctx context.Context, id uuid.UUID) (Account, error)
GetSettlementAccount(ctx context.Context) (Account, error)
GetSettlementAccountForUpdate(ctx context.Context) (Account, error)
GetUserByEmail(ctx context.Context, email string) (User, error)
// locks row for update, prevents TOCTOU races
ListAccountsByOwner(ctx context.Context, ownerID uuid.NullUUID) ([]Account, error)
ListEntriesByAccount(ctx context.Context, arg ListEntriesByAccountParams) ([]Entry, error)
ListEntriesByTransaction(ctx context.Context, transactionID uuid.UUID) ([]Entry, error)
UpdateAccountBalance(ctx context.Context, arg UpdateAccountBalanceParams) error
}
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) CreateAccount ¶
func (*Queries) CreateEntry ¶
func (*Queries) CreateUser ¶
func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (CreateUserRow, error)
func (*Queries) GetAccount ¶
func (*Queries) GetAccountBalance ¶
lock prevents concurrent transactions from reading a stale balance.
func (*Queries) GetAccountForUpdate ¶
func (*Queries) GetSettlementAccount ¶
func (*Queries) GetSettlementAccountForUpdate ¶
func (*Queries) GetUserByEmail ¶
func (*Queries) ListAccountsByOwner ¶
func (q *Queries) ListAccountsByOwner(ctx context.Context, ownerID uuid.NullUUID) ([]Account, error)
locks row for update, prevents TOCTOU races
func (*Queries) ListEntriesByAccount ¶
func (*Queries) ListEntriesByTransaction ¶
func (*Queries) UpdateAccountBalance ¶
func (q *Queries) UpdateAccountBalance(ctx context.Context, arg UpdateAccountBalanceParams) error
Click to show internal directories.
Click to hide internal directories.