clause

package
v2.4.7 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OrderByAsc  = "ASC"  // Сортировка по возрастанию
	OrderByDesc = "DESC" // Сортировка по убыванию
)

Константы для направлений сортировки

View Source
const (
	TypeDateTime = "2006-01-02 15:04:05"
	TypeTime     = "15:04:05"
)
View Source
const (
	OpIn  = "in"  // Операция "IN"
	OpNin = "nin" // Операция "NOT IN"
	OpPt  = "pt"  // Операция "IS NULL OR = ”"
	OpNp  = "np"  // Операция "IS NOT NULL AND <> ”"
	OpCo  = "co"  // Операция "LIKE %...%"
	OpEq  = "eq"  // Операция "="
	OpSw  = "sw"  // Операция "LIKE ...%"
	OpEw  = "ew"  // Операция "LIKE %..."
	OpGt  = ">"   // Операция ">"
	OpLt  = "<"   // Операция "<"
	OpGte = ">="  // Операция ">="
	OpLte = "<="  // Операция "<="
	OpNe  = "="   // Операция "="
	OpNne = "!="  // Операция "<>"
)

Константы операций фильтрации

Variables

View Source
var (
	ErrFilterUnknownOperator = apperr.New("filter_unknown_operator", apperr.WithTextTranslate(i18n.ErrFilterUnknownOperator), apperr.WithCode(code.InvalidArgument))
	ErrFilterInvalidOperator = apperr.New("filter_invalid_operator", apperr.WithTextTranslate(i18n.ErrFilterInvalidOperator), apperr.WithCode(code.InvalidArgument))
	ErrFilterUnknownColumn   = apperr.New("filter_unknown_column", apperr.WithTextTranslate(i18n.ErrFilterUnknownColumn), apperr.WithCode(code.InvalidArgument))
	ErrFilterInvalidValue    = apperr.New("filter_invalid_value", apperr.WithTextTranslate(i18n.ErrFilterInvalidValue), apperr.WithCode(code.InvalidArgument))
)

Ошибки для фильтрации

View Source
var (
	ErrOrderByUnknownColumn = apperr.New("order_by_unknown_column", apperr.WithTextTranslate(i18n.ErrOrderByUnknownColumn), apperr.WithCode(code.InvalidArgument))
)

Functions

func GetNotNullDBFields added in v2.3.216

func GetNotNullDBFields(s any) []any

func Limit added in v2.0.4

func Limit(limit, offset int) func(tx *gorm.DB) *gorm.DB

Limit создает функцию-замыкание для ограничения количества записей и смещения

func OnConflict

func OnConflict(onConflict []interface{}, doUpdates []interface{}) clause.OnConflict

OnConflict создает конструкцию для обработки конфликтов в запросах GORM

func OrderByFilter added in v2.1.9

func OrderByFilter(quoteTo func(string) string, orderBy []ExpressionOrderBy, fieldOrderBy FieldOrderBy) (string, []string, error)

OrderByFilter строит SQL-запрос для сортировки на основе переданных параметров

func PtrToNullableValue added in v2.3.216

func PtrToNullableValue[T comparable](ptr *T) *T

func PtrToValue added in v2.3.216

func PtrToValue[T comparable](ptr *T) (defaultValue T)

func Returning

func Returning(columns ...string) clause.Returning

Returning создает конструкцию для возврата указанных столбцов после выполнения операции

func Where

func Where(quoteTo func(string) string, query string, args ...interface{}) func(tx *gorm.DB) *gorm.DB

Where создает функцию-замыкание для добавления условия WHERE в запрос GORM

func WhereFilter

func WhereFilter(quoteTo func(string) string, expression *ExpressionWhere, fieldSearchable FieldSearchable) (string, []interface{}, []string, error)

WhereFilter строит SQL-запрос на основе выражения фильтрации

Types

type ExpressionOrderBy added in v2.3.34

type ExpressionOrderBy struct {
	Column string `json:"column"` // Имя столбца для сортировки
	Order  string `json:"order"`  // Значение для сортировки
}

type ExpressionWhere added in v2.1.9

type ExpressionWhere struct {
	Expressions []ExpressionWhere `json:"expressions"` // Вложенные выражения для составных условий
	Column      string            `json:"column"`      // Имя столбца для фильтрации
	Operation   string            `json:"operation"`   // Операция фильтрации
	Value       string            `json:"value"`       // Значение для фильтрации
}

ExpressionWhere описывает одно выражение для фильтрации

type FieldOrderBy added in v2.1.9

type FieldOrderBy map[string]Order

FieldOrderBy представляет карту столбцов, по которым можно выполнять сортировку

type FieldSearchable

type FieldSearchable map[string]Search

FieldSearchable представляет карту столбцов с информацией о том, как они можно искать

type Order added in v2.1.9

type Order struct {
	Column string // Имя столбца для сортировки
	Join   string // Имя соединения для запроса
}

Order описывает информацию о сортировке для столбца

type Search struct {
	Column string // Имя столбца в базе данных
	Type   Type   // Тип данных в столбце
	Join   string // Имя соединения для запроса
	SQL    string // SQL запрос
}

Search содержит информацию о том, как искать в определенном столбце

type Type added in v2.1.9

type Type string

Type представляет тип данных для столбца

const (
	String   Type = "string"   // Строка
	Int      Type = "int"      // Целое число
	Bool     Type = "bool"     // Логическое значение
	DateTime Type = "datetime" // Дата и время
	Time     Type = "time"     // Дата и время
)

Jump to

Keyboard shortcuts

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