database

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const ConnectPingTimeout = 5 * time.Second

Variables

This section is empty.

Functions

func Connect

func Connect[DB Pinger](ctx context.Context, newDB NewFunc[DB]) (DB, error)

func Name

func Name() (string, error)

func RunMigrations

func RunMigrations(pool *pgxpool.Pool) error

func Setup

func Setup(ctx context.Context) (*pgxpool.Pool, error)

func URL

func URL() (string, error)

Types

type Caller

type Caller interface {
	Call(ctx context.Context, options pgx.TxOptions, p transaction.Func) error
}

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type List

type List struct {
	ID   int32
	Name string
}

type NewFunc

type NewFunc[DB Pinger] func(ctx context.Context, dbURL string) (DB, error)

type Pinger

type Pinger interface {
	DBTX
	Ping(context.Context) error
}

type Plan

type Plan struct {
	ID           int32
	Instructions string
}

type Querier

type Querier interface {
	// interface: ReadOnlyQuerier TaskPriorityUpdater
	ListByID(ctx context.Context, id int32) (List, error)
	// interface: ReadOnlyQuerier
	Lists(ctx context.Context) ([]List, error)
	// interface: TaskPriorityUpdater
	SetTaskPriority(ctx context.Context, arg SetTaskPriorityParams) error
	// interface: ReadOnlyQuerier
	TasksByListID(ctx context.Context, id int32) ([]TasksByListIDRow, error)
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) ListByID

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

interface: ReadOnlyQuerier TaskPriorityUpdater

func (*Queries) Lists

func (q *Queries) Lists(ctx context.Context) ([]List, error)

interface: ReadOnlyQuerier

func (*Queries) SetTaskPriority

func (q *Queries) SetTaskPriority(ctx context.Context, arg SetTaskPriorityParams) error

interface: TaskPriorityUpdater

func (*Queries) TasksByListID

func (q *Queries) TasksByListID(ctx context.Context, id int32) ([]TasksByListIDRow, error)

interface: ReadOnlyQuerier

func (*Queries) WithTx

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

type ReadOnlyFunc

type ReadOnlyFunc func(ReadOnlyQuerier) error

func (ReadOnlyFunc) Func

func (f ReadOnlyFunc) Func(_ context.Context, tx pgx.Tx) error

type ReadOnlyQuerier

type ReadOnlyQuerier interface {
	ListByID(ctx context.Context, id int32) (List, error)
	Lists(ctx context.Context) ([]List, error)
	TasksByListID(ctx context.Context, id int32) ([]TasksByListIDRow, error)
}

type SetTaskPriorityParams

type SetTaskPriorityParams struct {
	Priority int32
	ID       int32
}

type Task

type Task struct {
	ID       int32
	ListID   int32
	PlanID   int32
	Priority int32
}

type TaskPriorityUpdateFunc

type TaskPriorityUpdateFunc func(TaskPriorityUpdater) error

func (TaskPriorityUpdateFunc) Func

type TaskPriorityUpdater

type TaskPriorityUpdater interface {
	ListByID(ctx context.Context, id int32) (List, error)
	SetTaskPriority(ctx context.Context, arg SetTaskPriorityParams) error
}

type TasksByListIDRow

type TasksByListIDRow struct {
	ID           int32
	ListID       int32
	PlanID       int32
	Priority     int32
	Instructions string
}

type Transactions

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

func NewTransactions

func NewTransactions(conn transaction.Beginner) *Transactions

func NewTransactionsWithCaller

func NewTransactionsWithCaller(m Caller) *Transactions

func (Transactions) ReadOnly

func (t Transactions) ReadOnly(ctx context.Context, f ReadOnlyFunc) error

func (Transactions) UpdatePriorityList

func (t Transactions) UpdatePriorityList(ctx context.Context, f TaskPriorityUpdateFunc) error

Directories

Path Synopsis
internal
fake
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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