db

package
v0.0.0-...-283c6a9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Account

type Account struct {
	ID        int64     `json:"id"`
	Owner     string    `json:"owner"`
	Balance   int64     `json:"balance"`
	Currency  string    `json:"currency"`
	CreatedAt time.Time `json:"createdAt"`
}

type AddAccountBalanceParams

type AddAccountBalanceParams struct {
	Amount int64 `json:"amount"`
	ID     int64 `json:"id"`
}

type CreateAccountParams

type CreateAccountParams struct {
	Owner    string `json:"owner"`
	Balance  int64  `json:"balance"`
	Currency string `json:"currency"`
}

type CreateEntryParams

type CreateEntryParams struct {
	AccountID int64 `json:"accountID"`
	Amount    int64 `json:"amount"`
}

type CreateSessionParams

type CreateSessionParams struct {
	ID           uuid.UUID `json:"id"`
	Username     string    `json:"username"`
	RefreshToken string    `json:"refreshToken"`
	UserAgent    string    `json:"userAgent"`
	ClientIp     string    `json:"clientIp"`
	IsBlocked    bool      `json:"isBlocked"`
	ExpiresIt    time.Time `json:"expiresIt"`
}

type CreateTransferParams

type CreateTransferParams struct {
	FromAccountID int64 `json:"fromAccountID"`
	ToAccountID   int64 `json:"toAccountID"`
	Amount        int64 `json:"amount"`
}

type CreateUserParams

type CreateUserParams struct {
	Username   string `json:"username"`
	HashedPass string `json:"hashedPass"`
	FullName   string `json:"fullName"`
	Email      string `json:"email"`
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type DeleteAccountParams

type DeleteAccountParams struct {
	ID    int64  `json:"id"`
	Owner string `json:"owner"`
}

type Entry

type Entry struct {
	ID        int64 `json:"id"`
	AccountID int64 `json:"accountID"`
	// can be negative of positive
	Amount    int64     `json:"amount"`
	CreatedAt time.Time `json:"createdAt"`
}

type ListAccountsParams

type ListAccountsParams struct {
	Owner  string `json:"owner"`
	Limit  int32  `json:"limit"`
	Offset int32  `json:"offset"`
}

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)
	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, arg DeleteAccountParams) error
	GetAccount(ctx context.Context, id int64) (Account, error)
	GetAccountForUpdate(ctx context.Context, id int64) (Account, error)
	GetEntriesByAccountId(ctx context.Context, accountID int64) ([]Entry, error)
	GetEntriesByAmount(ctx context.Context, amount int64) ([]Entry, error)
	GetEntryById(ctx context.Context, id int64) (Entry, error)
	GetSession(ctx context.Context, id uuid.UUID) (Session, error)
	GetTransferById(ctx context.Context, id int64) (Transfer, error)
	GetTransfersByAmount(ctx context.Context, amount int64) ([]Transfer, error)
	GetTransfersByFromAccountId(ctx context.Context, fromAccountID int64) ([]Transfer, error)
	GetTransfersByToAccountId(ctx context.Context, toAccountID int64) ([]Transfer, error)
	GetUser(ctx context.Context, email string) (User, error)
	ListAccounts(ctx context.Context, arg ListAccountsParams) ([]Account, error)
	UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error)
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) AddAccountBalance

func (q *Queries) AddAccountBalance(ctx context.Context, arg AddAccountBalanceParams) (Account, error)

func (*Queries) CreateAccount

func (q *Queries) CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error)

func (*Queries) CreateEntry

func (q *Queries) CreateEntry(ctx context.Context, arg CreateEntryParams) (Entry, error)

func (*Queries) CreateSession

func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)

func (*Queries) CreateTransfer

func (q *Queries) CreateTransfer(ctx context.Context, arg CreateTransferParams) (Transfer, error)

func (*Queries) CreateUser

func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error)

func (*Queries) DeleteAccount

func (q *Queries) DeleteAccount(ctx context.Context, arg DeleteAccountParams) error

func (*Queries) GetAccount

func (q *Queries) GetAccount(ctx context.Context, id int64) (Account, error)

func (*Queries) GetAccountForUpdate

func (q *Queries) GetAccountForUpdate(ctx context.Context, id int64) (Account, error)

func (*Queries) GetEntriesByAccountId

func (q *Queries) GetEntriesByAccountId(ctx context.Context, accountID int64) ([]Entry, error)

func (*Queries) GetEntriesByAmount

func (q *Queries) GetEntriesByAmount(ctx context.Context, amount int64) ([]Entry, error)

func (*Queries) GetEntryById

func (q *Queries) GetEntryById(ctx context.Context, id int64) (Entry, error)

func (*Queries) GetSession

func (q *Queries) GetSession(ctx context.Context, id uuid.UUID) (Session, error)

func (*Queries) GetTransferById

func (q *Queries) GetTransferById(ctx context.Context, id int64) (Transfer, error)

func (*Queries) GetTransfersByAmount

func (q *Queries) GetTransfersByAmount(ctx context.Context, amount int64) ([]Transfer, error)

func (*Queries) GetTransfersByFromAccountId

func (q *Queries) GetTransfersByFromAccountId(ctx context.Context, fromAccountID int64) ([]Transfer, error)

func (*Queries) GetTransfersByToAccountId

func (q *Queries) GetTransfersByToAccountId(ctx context.Context, toAccountID int64) ([]Transfer, error)

func (*Queries) GetUser

func (q *Queries) GetUser(ctx context.Context, email string) (User, error)

func (*Queries) ListAccounts

func (q *Queries) ListAccounts(ctx context.Context, arg ListAccountsParams) ([]Account, error)

func (*Queries) UpdateAccount

func (q *Queries) UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error)

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type Session

type Session struct {
	ID           uuid.UUID `json:"id"`
	Username     string    `json:"username"`
	RefreshToken string    `json:"refreshToken"`
	UserAgent    string    `json:"userAgent"`
	ClientIp     string    `json:"clientIp"`
	CreatedAt    time.Time `json:"createdAt"`
	IsBlocked    bool      `json:"isBlocked"`
	ExpiresIt    time.Time `json:"expiresIt"`
}

type SqlStore

type SqlStore struct {
	*Queries
	// contains filtered or unexported fields
}

func (*SqlStore) TransferTx

func (store *SqlStore) TransferTx(ctx context.Context, arg TransferTxParms) (TransferTxResult, error)

type Store

type Store interface {
	TransferTx(ctx context.Context, arg TransferTxParms) (TransferTxResult, error)
	Querier
}

func NewStore

func NewStore(db *sql.DB) Store

type Transfer

type Transfer struct {
	ID            int64 `json:"id"`
	FromAccountID int64 `json:"fromAccountID"`
	ToAccountID   int64 `json:"toAccountID"`
	// can not be negative
	Amount    int64     `json:"amount"`
	CreatedAt time.Time `json:"createdAt"`
}

type TransferTxParms

type TransferTxParms struct {
	FromAccountID int64 `json:"form_account_id"`
	ToAccountID   int64 `json:"to_account_id"`
	Amount        int64 `json:"amount"`
}

type TransferTxResult

type TransferTxResult struct {
	Transfer    Transfer `json:"transfer"`
	FromAccount Account  `json:"form_account"`
	ToAccount   Account  `json:"to_account"`
	FromEntry   Entry    `json:"from_entry"`
	ToEntry     Entry    `json:"to_entry"`
}

type UpdateAccountParams

type UpdateAccountParams struct {
	Balance int64  `json:"balance"`
	ID      int64  `json:"id"`
	Owner   string `json:"owner"`
}

type User

type User struct {
	Username    string    `json:"username"`
	HashedPass  string    `json:"hashedPass"`
	FullName    string    `json:"fullName"`
	Email       string    `json:"email"`
	CreatedAt   time.Time `json:"createdAt"`
	PassChanged time.Time `json:"passChanged"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL