clause

package
v2.3.24 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

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

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

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  = "="   // Операция "="
)

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

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 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 map[string]string, fieldOrderBy FieldOrderBy) (string, []string, error)

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

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 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" // Дата и время
)

Jump to

Keyboard shortcuts

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