Documentation
¶
Index ¶
- func ApplyBooleanFilter(q *gorm.DB, column string, value string) *gorm.DB
- func ApplyFilter(q *gorm.DB, column string, value string) *gorm.DB
- type Config
- type FilterAccessor
- type FilterResult
- type PaginationParams
- type QueryParams
- type Response
- type SearchAccessor
- type SearchQuery
- type SortBinding
- type SortOption
- type SortOrder
- type SortParams
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyBooleanFilter ¶
ApplyBooleanFilter adds a WHERE clause for boolean columns. It detects comma-separated values and maps "true"/"1" to true and "false"/"0" to false.
Types ¶
type Config ¶
type Config[T any] struct { SearchAccessors []SearchAccessor[T] SortBindings []SortBinding[T] FilterAccessors []FilterAccessor[T] }
type FilterAccessor ¶
type FilterResult ¶
func SearchOrderAndPaginate ¶
func SearchOrderAndPaginate[T any](items []T, params QueryParams, searchConfig Config[T]) FilterResult[T]
type PaginationParams ¶
type QueryParams ¶
type QueryParams struct {
SearchQuery
SortParams
PaginationParams
Filters map[string]string
}
type Response ¶
type Response struct {
TotalPages int64 `json:"totalPages"`
TotalItems int64 `json:"totalItems"`
CurrentPage int `json:"currentPage"`
ItemsPerPage int `json:"itemsPerPage"`
GrandTotalItems int64 `json:"grandTotalItems,omitempty"`
}
func BuildResponseFromFilterResult ¶
func BuildResponseFromFilterResult[T any](result FilterResult[T], params QueryParams) Response
BuildResponseFromFilterResult creates a pagination Response from a FilterResult. Handles the special case where limit = -1 means "show all".
func PaginateAndSortDB ¶
type SearchAccessor ¶
Return any error to skip the field (for when matching an unknown state on an enum)
Note: returning ("", nil) will match!
type SearchQuery ¶
type SearchQuery struct {
Search string
}
type SortBinding ¶
type SortBinding[T any] struct { Key string Fn SortOption[T] }
type SortOption ¶
type SortParams ¶
Click to show internal directories.
Click to hide internal directories.