Documentation
¶
Index ¶
- type Account
- type AddAccountBalanceParams
- type CreateAccountParams
- type CreateEntryParams
- type CreateTransferParams
- type CreateUserParams
- type DBTX
- type Entry
- type EntryType
- type ListAccountsParams
- type ListEntriesForAccountIdParams
- type ListEntriesParams
- type ListTransfersForFromAccountIdParams
- type ListTransfersForToAccountIdParams
- type ListTransfersParams
- type ListUsersParams
- type NullEntryType
- 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 int32) error
- func (q *Queries) DeleteEntry(ctx context.Context, id int32) error
- func (q *Queries) DeleteTransfer(ctx context.Context, id int32) error
- func (q *Queries) DeleteUser(ctx context.Context, id int32) error
- func (q *Queries) GetAccount(ctx context.Context, id int32) (Account, error)
- func (q *Queries) GetAccountByPublicId(ctx context.Context, publicID string) (Account, error)
- func (q *Queries) GetAccountByUserId(ctx context.Context, userID int32) (Account, error)
- func (q *Queries) GetAccountForUpdate(ctx context.Context, id int32) (Account, error)
- func (q *Queries) GetAllUserAccounts(ctx context.Context, userID int32) ([]Account, error)
- func (q *Queries) GetEntry(ctx context.Context, id int32) (Entry, error)
- func (q *Queries) GetEntryByAccountId(ctx context.Context, accountID int32) (Entry, error)
- func (q *Queries) GetTransfer(ctx context.Context, id int32) (Transfer, error)
- func (q *Queries) GetTransferByFromAccountId(ctx context.Context, fromAccountID int32) (Transfer, error)
- func (q *Queries) GetTransferByToAccountId(ctx context.Context, toAccountID int32) (Transfer, error)
- func (q *Queries) GetUser(ctx context.Context, id int32) (User, error)
- func (q *Queries) GetUserByEmail(ctx context.Context, email string) (User, error)
- func (q *Queries) GetUserByPublicID(ctx context.Context, publicID 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) ListEntriesForAccountId(ctx context.Context, arg ListEntriesForAccountIdParams) ([]Entry, error)
- func (q *Queries) ListTransfers(ctx context.Context, arg ListTransfersParams) ([]Transfer, error)
- func (q *Queries) ListTransfersForFromAccountId(ctx context.Context, arg ListTransfersForFromAccountIdParams) ([]Transfer, error)
- func (q *Queries) ListTransfersForToAccountId(ctx context.Context, arg ListTransfersForToAccountIdParams) ([]Transfer, error)
- func (q *Queries) ListUsers(ctx context.Context, arg ListUsersParams) ([]User, 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 Account ¶
type Account struct {
ID int32 `json:"id"`
PublicID string `json:"public_id"`
IsBlocked sql.NullBool `json:"is_blocked"`
BlockedAt sql.NullTime `json:"blocked_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
UserID int32 `json:"user_id"`
Balance int64 `json:"balance"`
Currency string `json:"currency"`
}
type AddAccountBalanceParams ¶
type CreateAccountParams ¶
type CreateEntryParams ¶
type CreateTransferParams ¶
type CreateUserParams ¶
type Entry ¶
type Entry struct {
ID int32 `json:"id"`
AccountID int32 `json:"account_id"`
PublicID string `json:"public_id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
// can be negative or positive
Amount int64 `json:"amount"`
Type EntryType `json:"type"`
LastBalance int64 `json:"last_balance"`
}
type ListAccountsParams ¶
type ListEntriesParams ¶
type ListTransfersParams ¶
type ListUsersParams ¶
type NullEntryType ¶
type NullEntryType struct {
EntryType EntryType `json:"entry_type"`
Valid bool `json:"valid"` // Valid is true if EntryType is not NULL
}
func (*NullEntryType) Scan ¶
func (ns *NullEntryType) Scan(value interface{}) error
Scan implements the Scanner interface.
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 int32) error
DeleteEntry(ctx context.Context, id int32) error
DeleteTransfer(ctx context.Context, id int32) error
DeleteUser(ctx context.Context, id int32) error
GetAccount(ctx context.Context, id int32) (Account, error)
GetAccountByPublicId(ctx context.Context, publicID string) (Account, error)
GetAccountByUserId(ctx context.Context, userID int32) (Account, error)
GetAccountForUpdate(ctx context.Context, id int32) (Account, error)
GetAllUserAccounts(ctx context.Context, userID int32) ([]Account, error)
GetEntry(ctx context.Context, id int32) (Entry, error)
GetEntryByAccountId(ctx context.Context, accountID int32) (Entry, error)
GetTransfer(ctx context.Context, id int32) (Transfer, error)
GetTransferByFromAccountId(ctx context.Context, fromAccountID int32) (Transfer, error)
GetTransferByToAccountId(ctx context.Context, toAccountID int32) (Transfer, error)
GetUser(ctx context.Context, id int32) (User, error)
GetUserByEmail(ctx context.Context, email string) (User, error)
GetUserByPublicID(ctx context.Context, publicID string) (User, error)
ListAccounts(ctx context.Context, arg ListAccountsParams) ([]Account, error)
ListEntries(ctx context.Context, arg ListEntriesParams) ([]Entry, error)
ListEntriesForAccountId(ctx context.Context, arg ListEntriesForAccountIdParams) ([]Entry, error)
ListTransfers(ctx context.Context, arg ListTransfersParams) ([]Transfer, error)
ListTransfersForFromAccountId(ctx context.Context, arg ListTransfersForFromAccountIdParams) ([]Transfer, error)
ListTransfersForToAccountId(ctx context.Context, arg ListTransfersForToAccountIdParams) ([]Transfer, error)
ListUsers(ctx context.Context, arg ListUsersParams) ([]User, 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) DeleteTransfer ¶
func (*Queries) GetAccount ¶
func (*Queries) GetAccountByPublicId ¶
func (*Queries) GetAccountByUserId ¶
func (*Queries) GetAccountForUpdate ¶
func (*Queries) GetAllUserAccounts ¶
func (*Queries) GetEntryByAccountId ¶
func (*Queries) GetTransfer ¶
func (*Queries) GetTransferByFromAccountId ¶
func (*Queries) GetTransferByToAccountId ¶
func (*Queries) GetUserByEmail ¶
func (*Queries) GetUserByPublicID ¶
func (*Queries) ListAccounts ¶
func (*Queries) ListEntries ¶
func (*Queries) ListEntriesForAccountId ¶
func (*Queries) ListTransfers ¶
func (*Queries) ListTransfersForFromAccountId ¶
func (*Queries) ListTransfersForToAccountId ¶
func (*Queries) UpdateAccount ¶
type SQLStore ¶
type SQLStore struct {
*Queries
// contains filtered or unexported fields
}
SQLStore provide all functions to execute SQL queries and transactions
func (*SQLStore) TransferTx ¶
func (store *SQLStore) TransferTx(ctx context.Context, arg TransferTxParams) (TransferTxResult, error)
TransferTx performs money transfer from one account to another It creates a transfer record, add account entries and update accounts' balance Within a single transaction
type Store ¶
type Store interface {
TransferTx(ctx context.Context, arg TransferTxParams) (TransferTxResult, error)
Querier
}
Store provide all functions to execute db queries and transactions
type Transfer ¶
type Transfer struct {
ID int32 `json:"id"`
FromAccountID int32 `json:"from_account_id"`
ToAccountID int32 `json:"to_account_id"`
PublicID string `json:"public_id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
// must be positive
Amount int64 `json:"amount"`
}
type TransferTxParams ¶
type TransferTxResult ¶
type UpdateAccountParams ¶
type User ¶
type User struct {
ID int32 `json:"id"`
PublicID string `json:"public_id"`
IsBlocked sql.NullBool `json:"is_blocked"`
BlockedAt sql.NullTime `json:"blocked_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt sql.NullTime `json:"deleted_at"`
Firstname string `json:"firstname"`
Lastname string `json:"lastname"`
Email string `json:"email"`
Password string `json:"password"`
Salt string `json:"salt"`
SecurityToken sql.NullString `json:"security_token"`
EmailConfirmed sql.NullBool `json:"email_confirmed"`
SecurityTokenRequestedAt sql.NullTime `json:"security_token_requested_at"`
}
Click to show internal directories.
Click to hide internal directories.