database

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2024 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound       = errors.New("not found")
	ErrWrongInputData = errors.New("wrong input data")
	ErrAlreadyExists  = errors.New("already exists")
	ErrInvalidQuery   = errors.New("invalid query")
)

Functions

func Error

func Error(err error) error

Error распаковка ошибки из базы данных

func Get

func Get[T any](ctx context.Context, database *Database, builder squirrel.SelectBuilder) (*T, error)

Get выборка строки из базы. Есть ограничение по использованию generic, по этому пока метод. Берет данные из базы и распаковывает в модель.

func NewConfig

func NewConfig(url string, l *zap.Logger) (*pgxpool.Config, error)

func Select

func Select[T any](ctx context.Context, database *Database, builder squirrel.SelectBuilder) ([]T, error)

Select выборка данных из базы. Есть ограничение по использованию generic, по этому пока метод. Берет данные из базы и распаковывает в модель.

Types

type Database

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

func NewForURL

func NewForURL(url string, l *zap.Logger) (*Database, error)

func (Database) Delete

func (r Database) Delete(ctx context.Context, builder squirrel.DeleteBuilder) (rowsAffected int64, err error)

func (Database) ExecuteRaw

func (r Database) ExecuteRaw(ctx context.Context, query string, args ...any) (rowsAffected int64, err error)

func (Database) GetRaw

func (r Database) GetRaw(ctx context.Context, dst any, query string, args ...any) error

func (Database) Insert

func (r Database) Insert(ctx context.Context, builder squirrel.InsertBuilder) (rowsAffected int64, err error)

func (Database) QueryBuilder

func (r Database) QueryBuilder() QueryBuilder

func (Database) SelectRaw

func (r Database) SelectRaw(ctx context.Context, dst any, query string, args ...any) error

func (Database) Transaction

func (r Database) Transaction(ctx context.Context) (pgx.Tx, error)

func (Database) Update

func (r Database) Update(ctx context.Context, builder squirrel.UpdateBuilder) (rowsAffected int64, err error)

func (Database) WithTx

func (r Database) WithTx(
	ctx context.Context,
	handler func(ctx context.Context, queryRunner *TransactionExecutor) error,
) error

type Logger

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

func NewLogger

func NewLogger(l *zap.Logger) Logger

func (Logger) Log

func (l Logger) Log(_ context.Context, level tracelog.LogLevel, msg string, data map[string]interface{})

type QueryBuilder

type QueryBuilder struct {
	squirrel.StatementBuilderType
}

func NewQueryBuilder

func NewQueryBuilder() QueryBuilder

type QueryExecutor

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

func NewQueryExecutor

func NewQueryExecutor(executor QueryRunner) *QueryExecutor

func (QueryExecutor) Delete

func (r QueryExecutor) Delete(ctx context.Context, builder squirrel.DeleteBuilder) (int64, error)

func (QueryExecutor) ExecuteRaw

func (r QueryExecutor) ExecuteRaw(ctx context.Context, query string, args ...any) (rowsAffected int64, err error)

func (QueryExecutor) GetRaw

func (r QueryExecutor) GetRaw(ctx context.Context, dst any, query string, args ...any) error

func (QueryExecutor) Insert

func (r QueryExecutor) Insert(ctx context.Context, builder squirrel.InsertBuilder) (int64, error)

func (QueryExecutor) SelectRaw

func (r QueryExecutor) SelectRaw(ctx context.Context, dst any, query string, args ...any) error

func (QueryExecutor) Update

func (r QueryExecutor) Update(ctx context.Context, builder squirrel.UpdateBuilder) (int64, error)

type QueryRunner

type QueryRunner interface {
	Exec(ctx context.Context, sql string, arguments ...any) (pgconn.CommandTag, error)
	Query(ctx context.Context, sql string, args ...any) (pgx.Rows, error)
	QueryRow(ctx context.Context, sql string, args ...any) pgx.Row
}

type Table

type Table string

func (Table) String

func (t Table) String() string

type TransactionExecutor

type TransactionExecutor struct {
	*QueryExecutor
}

func NewTransactionExecutor

func NewTransactionExecutor(tx pgx.Tx) *TransactionExecutor

func (*TransactionExecutor) Commit

func (txex *TransactionExecutor) Commit() error

func (*TransactionExecutor) Rollback

func (txex *TransactionExecutor) Rollback() error

Jump to

Keyboard shortcuts

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