db

package
v0.0.0-...-10784ff Latest Latest
Warning

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

Go to latest
Published: Aug 26, 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       int32     `json:"id"`
	Login    string    `json:"login"`
	Username string    `json:"username"`
	Created  time.Time `json:"created"`
}

type CreateAccountParams

type CreateAccountParams struct {
	Login    string `json:"login"`
	Username string `json:"username"`
}

type CreateSessionParams

type CreateSessionParams struct {
	ID           uuid.UUID `json:"id"`
	Name         string    `json:"name"`
	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"`
}

type CreateSnippetParams

type CreateSnippetParams struct {
	AccountID int32  `json:"account_id"`
	Title     string `json:"title"`
	Content   string `json:"content"`
}

type CreateUserParams

type CreateUserParams struct {
	Name           string `json:"name"`
	HashedPassword string `json:"hashed_password"`
	FullName       string `json:"full_name"`
	Email          string `json:"email"`
}

type CreateUserTxParams

type CreateUserTxParams struct {
	CreateUserParams
	AfterCreate func(user User) error
}

type CreateUserTxResult

type CreateUserTxResult struct {
	User User
}

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 ListSnippetsParams

type ListSnippetsParams struct {
	AccountID int32 `json:"account_id"`
	Limit     int32 `json:"limit"`
	Offset    int32 `json:"offset"`
}

type Querier

type Querier interface {
	CreateAccount(ctx context.Context, arg CreateAccountParams) (Account, error)
	CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error)
	CreateSnippet(ctx context.Context, arg CreateSnippetParams) (Snippet, error)
	CreateUser(ctx context.Context, arg CreateUserParams) (User, error)
	DeleteAccount(ctx context.Context, id int32) error
	DeleteSnippet(ctx context.Context, id int32) error
	GetAccount(ctx context.Context, id int32) (Account, error)
	GetSession(ctx context.Context, id uuid.UUID) (Session, error)
	GetSnippet(ctx context.Context, id int32) (Snippet, error)
	GetUser(ctx context.Context, name string) (User, error)
	ListSnippets(ctx context.Context, arg ListSnippetsParams) ([]Snippet, error)
	UpdateAccount(ctx context.Context, arg UpdateAccountParams) (Account, error)
	UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error)
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) CreateAccount

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

func (*Queries) CreateSession

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

func (*Queries) CreateSnippet

func (q *Queries) CreateSnippet(ctx context.Context, arg CreateSnippetParams) (Snippet, 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, id int32) error

func (*Queries) DeleteSnippet

func (q *Queries) DeleteSnippet(ctx context.Context, id int32) error

func (*Queries) GetAccount

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

func (*Queries) GetSession

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

func (*Queries) GetSnippet

func (q *Queries) GetSnippet(ctx context.Context, id int32) (Snippet, error)

func (*Queries) GetUser

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

func (*Queries) ListSnippets

func (q *Queries) ListSnippets(ctx context.Context, arg ListSnippetsParams) ([]Snippet, error)

func (*Queries) UpdateAccount

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

func (*Queries) UpdateUser

func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error)

func (*Queries) WithTx

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

type SQLStore

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

func (*SQLStore) CreateUserTx

func (store *SQLStore) CreateUserTx(ctx context.Context, arg CreateUserTxParams) (CreateUserTxResult, error)

type Session

type Session struct {
	ID           uuid.UUID `json:"id"`
	Name         string    `json:"name"`
	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"`
	Created      time.Time `json:"created"`
}

type Snippet

type Snippet struct {
	ID        int32     `json:"id"`
	AccountID int32     `json:"account_id"`
	Title     string    `json:"title"`
	Content   string    `json:"content"`
	Created   time.Time `json:"created"`
}

type Store

type Store interface {
	Querier
	CreateUserTx(ctx context.Context, arg CreateUserTxParams) (CreateUserTxResult, error)
}

func NewStore

func NewStore(db *sql.DB) Store

type UpdateAccountParams

type UpdateAccountParams struct {
	ID       int32  `json:"id"`
	Username string `json:"username"`
}

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"`
	Name              string         `json:"name"`
}

type User

type User struct {
	Name              string    `json:"name"`
	HashedPassword    string    `json:"hashed_password"`
	FullName          string    `json:"full_name"`
	Email             string    `json:"email"`
	PasswordChangedAt time.Time `json:"password_changed_at"`
	Created           time.Time `json:"created"`
}

Jump to

Keyboard shortcuts

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