pagination

package
v1.22.0 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleRequest

func HandleRequest[T any](
	c *fiber.Ctx,
	query *gorm.DB,
	defaults Defaults,
	message string,
) error

HandleRequest is a convenience function that handles the full pagination flow It parses, validates, applies defaults, executes query, and returns response

func OrderClause added in v1.19.0

func OrderClause(sortBy, sortOrder string, fieldToColumn map[string]string, defaultColumn string) string

OrderClause returns an ORDER BY clause (column + direction) from sort params and an allowlist. sortBy is the requested field (e.g. "name"); sortOrder is "asc" or "desc". fieldToColumn maps allowed API field names to DB column names (e.g. "name" -> "roles.name"). defaultColumn is used when sortBy is not in the map.

func Query

func Query[T any](
	ctx context.Context,
	query *gorm.DB,
	params *Params,
	message string,
) (*httpx.PaginatedResponse, error)

Query applies pagination to a GORM query and returns results with metadata

Types

type Defaults

type Defaults struct {
	Page      int
	PerPage   int
	SortBy    string
	SortOrder string
}

Defaults holds default values for pagination

func Default

func Default() Defaults

Default returns sensible defaults for pagination

type Params

type Params struct {
	Page      int    `query:"page" validate:"min=1"`
	PerPage   int    `query:"per_page" validate:"min=1,max=100"`              // Items per page
	SortBy    string `query:"sort_by"`                                        // Sort field name
	SortOrder string `query:"sort_order" validate:"omitempty,oneof=asc desc"` // Sort order: asc or desc
}

Params represents pagination query parameters

func ParseParams

func ParseParams(c *fiber.Ctx, defaults Defaults) (*Params, error)

ParseParams parses and validates pagination parameters from Fiber context

Jump to

Keyboard shortcuts

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