Documentation ¶
Index ¶
- Constants
- Variables
- func ErrorCode(err error) string
- type Account
- type AddAccountBalanceParams
- type CreateAccountParams
- type CreateEntryParams
- type CreateTransferParams
- type CreateUserTxParams
- type CreateUserTxResult
- type DBTX
- type Entry
- type ListAccountsParams
- type ListEntriesParams
- type ListTransfersParams
- 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) 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) 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
Constants ¶
View Source
const ( ForeignKeyViolation = "23503" UniqueViolation = "23505" )
Variables ¶
View Source
var ErrRecordNotFound = pgx.ErrNoRows
View Source
var ErrUniqueViolation = &pgconn.PgError{ Code: UniqueViolation, }
Functions ¶
Types ¶
type AddAccountBalanceParams ¶
type CreateAccountParams ¶
type CreateEntryParams ¶
type CreateTransferParams ¶
type CreateUserTxParams ¶
type CreateUserTxParams struct { CreateUserParams AfterCreate func(user User) error }
type CreateUserTxResult ¶
type CreateUserTxResult struct {
User User
}
type ListAccountsParams ¶
type ListEntriesParams ¶
type ListTransfersParams ¶
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) AddAccountBalance ¶
func (*Queries) CreateAccount ¶
func (*Queries) CreateEntry ¶
func (*Queries) CreateTransfer ¶
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 // contains filtered or unexported fields }
SQLStore fornece todas as funções para executas queries SQL e transações
func (*SQLStore) CreateUserTx ¶
func (store *SQLStore) CreateUserTx(ctx context.Context, arg CreateUserTxParams) (CreateUserTxResult, error)
func (*SQLStore) TransferTx ¶
func (store *SQLStore) TransferTx(ctx context.Context, arg TransferTxParams) (TransferTxResult, error)
TransferTx performa uma transferência de dinheiro de uma conta para outra. Cria um registro de transferência, adiciona registro de movimentações às contas e atualiza o saldo das contas em uma única transação
type Store ¶
type Store interface { TransferTx(ctx context.Context, arg TransferTxParams) (TransferTxResult, error) CreateUserTx(ctx context.Context, arg CreateUserTxParams) (CreateUserTxResult, error) }
Store define todas as funções para executas queries e transações no banco de dados
type TransferTxParams ¶
type TransferTxParams struct { FromAccountID int64 `json:"fromAccountID"` // ID conta que enviará o dinheiro ToAccountID int64 `json:"toAccountID"` // ID da conta que receberá o dinheiro Amount int64 `json:"amount"` // Valor da quantidade enviada }
TransferTxParams contém os parâmetros de input da transação de transferência
type TransferTxResult ¶
type TransferTxResult struct { Transfer Transfer `json:"transfer"` // O registro de transferência criado FromAccount Account `json:"fromAccount"` // A conta de origem, depois do seu saldo ser atualizado ToAccount Account `json:"toAccount"` // A conta destinatária, após ser atualizada FromEntry Entry `json:"fromEntry"` // Registra que o dinheiro está saindo ToEntry Entry `json:"toEntry"` // Registra que o dinheiro está entrando }
TransferTxResult é o resultado da transação de transferência
type UpdateAccountParams ¶
Click to show internal directories.
Click to hide internal directories.