Documentation
¶
Index ¶
- Constants
- func Count(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset) (int64, error)
- func Delete(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset) error
- func DeleteByKey(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset, ...) error
- func DeleteWhere(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset, ...) error
- func Do(ctx context.Context, conn SqlAdapter, qry any, target ...any) error
- func EmptyResult(err error) bool
- func Exec(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.SelectDataset) error
- func Exists(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, ...) (bool, error)
- func Fetch(ctx context.Context, conn SqlxReaderCtx, qry *goqu.SelectDataset, target any) error
- func FetchByKey(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, ...) error
- func FetchOne(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, ...) error
- func FetchRecord(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, ...) error
- func FetchWhere(ctx context.Context, conn SqlxReaderCtx, qry *goqu.SelectDataset, ...) error
- func GetDialect(driverName string) qb.SqlDialect
- func RawExec(ctx context.Context, conn sqlx.ExecerContext, sql string, args ...any) error
- func RawFetch(ctx context.Context, conn sqlx.QueryerContext, sql string, args []any, ...) error
- func RawInsert(ctx context.Context, conn sqlx.ExecerContext, qry string, values []any) error
- func RawInsertReturning(ctx context.Context, conn sqlx.QueryerContext, qry string, values []any, ...) error
- func RawInsertReturningFlexible(ctx context.Context, conn sqlx.QueryerContext, sql string, args []any, ...) error
- func RawUpdateReturning(ctx context.Context, conn sqlx.QueryerContext, qry string, args []any, ...) error
- func RawUpdateReturningFlexible(ctx context.Context, conn sqlx.QueryerContext, sql string, args []any, ...) error
- func RegisterDialect(driverName string, dialect qb.SqlDialect)
- func RegisterFactory(driverName string, factory FnRepositoryFactory)
- func ToAnySlice[T any](in []T) []any
- func Update(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.UpdateDataset) error
- type Builder
- type Client
- type ConnectionOptions
- type Counter
- type Deleter
- type Dialect
- type Executor
- type FV
- type FnRepositoryFactory
- type Grid
- type GridError
- type GridFilterFunc
- type GridOps
- type GridQuery
- type Identifier
- type Reader
- type Repository
- type SqlAdapter
- type SqlBuilder
- type SqlClient
- type SqlxReaderCtx
- type Transaction
- type Updater
- type Writer
Constants ¶
const ( SortAscending = "asc" SortDescending = "desc" SearchNone = 0 SearchStart = 1 SearchEnd = 2 SearchAny = 3 DefaultPageSize = 100 )
const (
ErrInvalidParameters = utils.Error("invalid parameter count or parameter is nil")
)
Variables ¶
This section is empty.
Functions ¶
func Count ¶ added in v0.2.9
func Count(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset) (int64, error)
func Delete ¶ added in v0.5.0
func Delete(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset) error
func DeleteByKey ¶ added in v0.2.9
func DeleteByKey(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset, keyField string, value any) error
func DeleteWhere ¶ added in v0.2.9
func DeleteWhere(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.DeleteDataset, fieldNameValue map[string]any) error
func EmptyResult ¶ added in v0.2.0
EmptyResult returns true if error is empty result
func Exec ¶ added in v0.2.9
func Exec(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.SelectDataset) error
func Fetch ¶ added in v0.2.9
func Fetch(ctx context.Context, conn SqlxReaderCtx, qry *goqu.SelectDataset, target any) error
func FetchByKey ¶ added in v0.2.9
func FetchByKey(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, keyField string, value any, target any) error
func FetchOne ¶ added in v0.2.9
func FetchOne(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, target any) error
func FetchRecord ¶ added in v0.2.9
func FetchRecord(ctx context.Context, conn sqlx.QueryerContext, qry *goqu.SelectDataset, fieldValues map[string]any, target any) error
func FetchWhere ¶ added in v0.2.9
func FetchWhere(ctx context.Context, conn SqlxReaderCtx, qry *goqu.SelectDataset, fieldValues map[string]any, target any) error
func GetDialect ¶ added in v0.5.0
func GetDialect(driverName string) qb.SqlDialect
func RawInsertReturning ¶ added in v0.5.0
func RawInsertReturningFlexible ¶ added in v0.5.0
func RawInsertReturningFlexible(ctx context.Context, conn sqlx.QueryerContext, sql string, args []any, target any) error
RawInsertReturningFlexible provides intelligent target scanning for InsertReturning operations. It automatically detects the target type and uses the appropriate scanning method: - *struct: uses StructScan() for automatic field mapping by name/tag - []any: uses Scan() for positional mapping to multiple variables - *variable: uses Scan() for single value mapping
func RawUpdateReturning ¶ added in v0.5.0
func RawUpdateReturning(ctx context.Context, conn sqlx.QueryerContext, qry string, args []any, target ...any) error
RawUpdateReturning helper function for RawUpdateReturningFlexible
func RawUpdateReturningFlexible ¶ added in v0.5.0
func RawUpdateReturningFlexible(ctx context.Context, conn sqlx.QueryerContext, sql string, args []any, target any) error
RawUpdateReturningFlexible provides intelligent target scanning for UpdateReturning operations. It automatically detects the target type and uses the appropriate scanning method: - *struct: uses StructScan() for automatic field mapping by name/tag - []any: uses Scan() for positional mapping to multiple variables - *variable: uses Scan() for single value mapping
func RegisterDialect ¶ added in v0.5.0
func RegisterDialect(driverName string, dialect qb.SqlDialect)
func RegisterFactory ¶ added in v0.4.0
func RegisterFactory(driverName string, factory FnRepositoryFactory)
RegisterFactory registers a repository factory for the given driver name
func ToAnySlice ¶ added in v0.5.0
func Update ¶ added in v0.2.9
func Update(ctx context.Context, conn sqlx.ExecerContext, qry *goqu.UpdateDataset) error
Types ¶
type Builder ¶ added in v0.2.0
type Builder interface {
Sql() goqu.DialectWrapper
SqlSelect() *goqu.SelectDataset
SqlInsert() *goqu.InsertDataset
SqlUpdate() *goqu.UpdateDataset
SqlDelete() *goqu.DeleteDataset
}
type ConnectionOptions ¶ added in v0.2.0
type FnRepositoryFactory ¶ added in v0.4.0
type FnRepositoryFactory func(ctx context.Context, conn *SqlClient, tableName string) Repository
type Grid ¶ added in v0.4.0
type Grid struct {
// contains filtered or unexported fields
}
func (*Grid) AddFilterFunc ¶ added in v0.4.0
func (grid *Grid) AddFilterFunc(dbField string, f GridFilterFunc) *Grid
AddFilterFunc register a new filtering function filtering functions translate filtering values to db-compatible values
func (*Grid) Build ¶ added in v0.4.0
func (grid *Grid) Build(qry *goqu.SelectDataset, args *GridQuery) (*goqu.SelectDataset, error)
func (*Grid) ValidQuery ¶ added in v0.4.0
ValidQuery validates if a GridQuery request is valid
type GridError ¶ added in v0.4.0
type GridFilterFunc ¶ added in v0.4.0
type GridQuery ¶ added in v0.4.0
type GridQuery struct {
SearchType uint `db:"searchType"`
SearchText string `json:"searchText,omitempty"`
FilterFields map[string]any `json:"filterFields,omitempty"`
SortFields map[string]string `json:"sortFields,omitempty"`
Offset uint `json:"offset,omitempty"`
Limit uint `json:"limit,omitempty"`
}
func NewGridQuery ¶ added in v0.4.0
NewGridQuery helper to create a GridQuery
type Identifier ¶ added in v0.2.0
type Reader ¶ added in v0.2.0
type Reader interface {
FetchOne(qry *goqu.SelectDataset, target any) error
FetchRecord(fieldValues map[string]any, target any) error
Fetch(qry *goqu.SelectDataset, target any) error
FetchWhere(fieldValues map[string]any, target any) error
FetchByKey(keyField string, value any, target any) error
Exists(fieldName string, fieldValue any, skip ...any) (bool, error)
}
type Repository ¶ added in v0.2.0
type Repository interface {
Identifier
Builder
Reader
Executor
Writer
Deleter
Updater
Counter
GridOps
SqlBuilder
NewTransaction(opts *sql.TxOptions) (Transaction, error)
}
func NewRepository ¶ added in v0.2.0
func NewRepository(ctx context.Context, conn *SqlClient, tableName string) Repository
type SqlAdapter ¶ added in v0.5.0
type SqlAdapter interface {
sqlx.QueryerContext
sqlx.ExecerContext
SqlxReaderCtx
}
type SqlBuilder ¶ added in v0.5.0
type SqlBuilder interface {
SqlDialect() qb.SqlDialect
SqlBuilder() *qb.SqlBuilder
SqlUpdateX(record any) *qb.UpdateBuilder
Do(qry any, target ...any) error
}
type SqlClient ¶ added in v0.1.1
type SqlClient struct {
Conn *sqlx.DB
Dsn string
DriverName string
// contains filtered or unexported fields
}
func NewSqlClient ¶ added in v0.1.1
func NewSqlClient(dsn string, driverName string, connOptions ConnectionOptions) *SqlClient
func (*SqlClient) Disconnect ¶ added in v0.1.1
func (c *SqlClient) Disconnect()
func (*SqlClient) IsConnected ¶ added in v0.1.1
type SqlxReaderCtx ¶ added in v0.2.1
type Transaction ¶ added in v0.2.0
type Updater ¶ added in v0.2.0
type Updater interface {
Update(qry *goqu.UpdateDataset) error
UpdateReturning(record any, whereFieldsValues map[string]any, returnFields []string, target ...any) error
UpdateRecord(record any, whereFieldsValues map[string]any) error
UpdateFields(record any, fieldsValues map[string]any, whereFieldsValues map[string]any) error
UpdateFieldsReturning(record any, fieldsValues map[string]any, whereFieldsValues map[string]any, returnFields []string, target ...any) error
UpdateByKey(record any, keyField string, value any) error
}