Documentation ¶
Index ¶
- type Account
- type AddAccountBalanceParams
- type CreateAccountParams
- type CreateEntryParams
- type CreateSessionParams
- type CreateTransferParams
- type CreateUserParams
- type DBTX
- type Entry
- type ListAllAccountsParams
- type ListEntriesParams
- type ListTransfersParams
- type ListUserAccountsParams
- 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) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, 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) GetSession(ctx context.Context, id uuid.UUID) (Session, 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) ListAllAccounts(ctx context.Context, arg ListAllAccountsParams) ([]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) ListUserAccounts(ctx context.Context, arg ListUserAccountsParams) ([]Account, error)
- func (q *Queries) UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error)
- func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error)
- func (q *Queries) WithTx(tx *sql.Tx) *Queries
- type SQLStore
- type Session
- type Store
- type Transfer
- type TransferMoneyTxnResult
- type TransferTxParams
- type UpdateAccountParams
- type UpdateUserParams
- 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 CreateSessionParams ¶
type CreateTransferParams ¶
type CreateUserParams ¶
type ListAllAccountsParams ¶
type ListEntriesParams ¶
type ListTransfersParams ¶
type ListUserAccountsParams ¶
type Querier ¶
type Querier interface { // sqlc.arg(amount) is a placeholder for the actual value, sqlc when generating the go //code will name the function AddAccountBalance and the parameters required to call it // will be named AddAccountBalanceParams and the struct will have a field named Amount // and ID instead of Balance and ID AddAccountBalance(ctx context.Context, arg AddAccountBalanceParams) (Account, error) CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error) CreateEntry(ctx context.Context, arg CreateEntryParams) (Entry, error) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, 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) GetSession(ctx context.Context, id uuid.UUID) (Session, error) GetTransfer(ctx context.Context, id int64) (Transfer, error) GetUser(ctx context.Context, username string) (User, error) ListAllAccounts(ctx context.Context, arg ListAllAccountsParams) ([]Account, error) ListEntries(ctx context.Context, arg ListEntriesParams) ([]Entry, error) ListTransfers(ctx context.Context, arg ListTransfersParams) ([]Transfer, error) ListUserAccounts(ctx context.Context, arg ListUserAccountsParams) ([]Account, error) UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error) // Note you cannot mix the positional parameters($1, $2, $3) with // named parameters(@set_full_name, @full_name, @set_email // Also sqlc.arg(set_hashed_password) is similar to @set_hashed_password // Using COALESCE function of postgresql to update only the fields that // are provided by the user. // COALESCE function returns the first non-null value from the list of arguments // provided to it. // sqlc.narg is the same as sqlc. arg , but always marks the parameter as nullable. UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error) }
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) AddAccountBalance ¶
func (q *Queries) AddAccountBalance(ctx context.Context, arg AddAccountBalanceParams) (Account, error)
sqlc.arg(amount) is a placeholder for the actual value, sqlc when generating the go code will name the function AddAccountBalance and the parameters required to call it will be named AddAccountBalanceParams and the struct will have a field named Amount and ID instead of Balance and ID
func (*Queries) CreateAccount ¶
func (*Queries) CreateEntry ¶
func (*Queries) CreateSession ¶
func (*Queries) CreateTransfer ¶
func (*Queries) CreateUser ¶
func (*Queries) DeleteAccount ¶
func (*Queries) GetAccount ¶
func (*Queries) GetAccountForUpdate ¶
func (*Queries) GetSession ¶
func (*Queries) GetTransfer ¶
func (*Queries) ListAllAccounts ¶
func (*Queries) ListEntries ¶
func (*Queries) ListTransfers ¶
func (*Queries) ListUserAccounts ¶
func (*Queries) UpdateAccount ¶
func (*Queries) UpdateUser ¶
Note you cannot mix the positional parameters($1, $2, $3) with named parameters(@set_full_name, @full_name, @set_email Also sqlc.arg(set_hashed_password) is similar to @set_hashed_password Using COALESCE function of postgresql to update only the fields that are provided by the user. COALESCE function returns the first non-null value from the list of arguments provided to it. sqlc.narg is the same as sqlc. arg , but always marks the parameter as nullable.
type SQLStore ¶
type SQLStore struct { // Queries is a struct that contains all the auto-generated queries // for the database operations, generated by sqlc. // But the Queries only contains the individual queries to the database in // the auto-generated methods and not the transactional function. // So, we need to create a new struct that contains the transactional functions. *Queries // contains filtered or unexported fields }
SQLStore provides all functions to execute SQL queries and transactions It's the real implementation of the Store interface that actually interacts with the database.
func (*SQLStore) TransferMoneyTxn ¶
func (store *SQLStore) TransferMoneyTxn(ctx context.Context, arg TransferTxParams) (TransferMoneyTxnResult, error)
func (*SQLStore) TransferMoneyTxn2 ¶
func (store *SQLStore) TransferMoneyTxn2(ctx context.Context, args TransferTxParams) (TransferMoneyTxnResult, error)
type Session ¶
type Session struct { ID uuid.UUID `json:"id"` Username string `json:"username"` RefreshToken string `json:"refresh_token"` UserAgent string `json:"user_agent"` ClientIp string `json:"client_ip"` IsBlocked bool `json:"is_blocked"` ExpiresAt time.Time `json:"expires_at"` CreatedAt time.Time `json:"created_at"` }
type Store ¶
type Store interface { Querier TransferMoneyTxn(ctx context.Context, arg TransferTxParams) (TransferMoneyTxnResult, error) }
Store defines all functions to execute db queries and transactions that must be implemented both by a real database store (like SQLStore) and a mock store for testing.
type TransferMoneyTxnResult ¶
type TransferMoneyTxnResult struct { Transfer Transfer `json:"transfer"` // The transfer object created after the money transfer FromAccount Account `json:"from_account"` // The account from which the money was transferred ToAccount Account `json:"to_account"` // The account to which the money was transferred FromEntry Entry `json:"from_entry"` // The entry created for the from account with -ve amount ToEntry Entry `json:"to_entry"` // The entry created for the to account with +ve amount }
TransferMoneyTxnResult is the result of the transfer transaction
type TransferTxParams ¶
type TransferTxParams struct { FromAccountID int64 `json:"from_account_id"` ToAccountID int64 `json:"to_account_id"` Amount int64 `json:"amount"` }
TransferMoneyTxnParams contains the input parameters of the transfer transaction
type UpdateAccountParams ¶
type UpdateUserParams ¶
type UpdateUserParams struct { HashedPassword sql.NullString `json:"hashed_password"` PasswordChangedAt sql.NullTime `json:"password_changed_at"` FullName sql.NullString `json:"full_name"` Email sql.NullString `json:"email"` Username string `json:"username"` }