paginate

package
v0.0.0-...-4e22d16 Latest Latest
Warning

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

Go to latest
Published: Jan 5, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyFilters

func ApplyFilters(db *gorm.DB, filters []Filter) *gorm.DB

ApplyFilters applies filters to a query

Types

type Filter

type Filter struct {
	Value      interface{}      `json:"value"`
	Comparator FilterComparator `json:"comparator"`
}

Filter represents a filter

func ParseFilterFromString

func ParseFilterFromString(filterString string) ([]Filter, error)

type FilterComparator

type FilterComparator string
const (
	AND FilterComparator = "AND"
	OR  FilterComparator = "OR"
)

type FilterOperator

type FilterOperator string

FilterOperator type for defining filter operators

const (
	EQ   FilterOperator = "$eq"
	LIKE FilterOperator = "$like"
	IN   FilterOperator = "$in"
	BTW  FilterOperator = "$btw"
)

Define constants for FilterOperator

type Pagination

type Pagination[T any] struct {
	Items      []T    `json:"items"`
	TotalItems int64  `json:"total_items"`
	TotalPages int    `json:"total_pages"`
	Page       int    `json:"page"`
	Limit      int    `json:"limit"`
	SortBy     string `json:"sort_by"`
	Filters    string `json:"filters"`
	// contains filtered or unexported fields
}

func ToPagination

func ToPagination[T any](p Params) (*Pagination[T], error)

func TransformPagination

func TransformPagination[T any, R any](pagination *Pagination[T], transformer func(*T) R) Pagination[R]

func (*Pagination[T]) Paginate

func (p *Pagination[T]) Paginate(db *gorm.DB) error

func (*Pagination[T]) Preload

func (p *Pagination[T]) Preload(preload ...string)

type Params

type Params struct {
	Limit   string `form:"limit"`
	Page    string `form:"page"`
	SortBy  string `form:"sort_by"`
	Filters string `form:"filters"`
}

type Transformer

type Transformer[T any, R any] func(T) R

Transformer is a generic function type for transforming domain models to response models.

Jump to

Keyboard shortcuts

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