param

package
v0.0.30 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// content-type
	NdJSON = `application/x-ndjson`
	JSON   = `application/json`
)

Variables

View Source
var Routes = []Param{
	Blv,
	Dir,
	File,
}

Functions

func GetAnySlice

func GetAnySlice(key string, vals url.Values) []any

func GetQueryInt

func GetQueryInt(key string, vals url.Values) int

func GetQueryStringSlice

func GetQueryStringSlice(key string, q url.Values) []string

func ParseQueryString

func ParseQueryString(val string) (url.Values, error)

ParseQueryString parses an encoded filter string.

func ParseQueryStrings added in v0.0.21

func ParseQueryStrings(q []string) []string

func QueryToSettings added in v0.0.29

func QueryToSettings(settings map[string]any) map[string]any

QueryToSettings returns a map with all keys converted to snakecase

func SettingsToQuery added in v0.0.29

func SettingsToQuery(settings map[string]any) map[string]any

SettingsToQuery returns a map with all keys converted to camelcase

Types

type Param added in v0.0.29

type Param int
const (
	// search params
	Hits         Param = iota // hits
	RtrvAttr                  // attributesToRetrieve
	Page                      // page
	HitsPerPage               // hitsPerPage
	SortFacetsBy              // sortFacetValuesBy
	MaxFacetVals              // maxValuesPerFacet
	Query                     // query
	Facets                    // facets
	Filters                   // filters
	FacetFilters              // facetFilters
	NbHits                    // nbHits
	NbPages                   // nbPage
	SortBy                    // sortBy
	Order                     // order

	// Settings
	SrchAttr  // searchableAttributes
	FacetAttr // attributesForFaceting
	SortAttr  // sortableAttributes
	Path      // path

	// Cfg
	Format       // format
	DefaultField // title
	UID          // uid

	// file paths
	Route // route
	Blv   // blv
	Dir   // dir
	File  // file
)

func (Param) Dasherize added in v0.0.29

func (p Param) Dasherize() string

Dasherize returns an alphanumeric, lowercased, dashed string

func (Param) Query added in v0.0.29

func (p Param) Query() string

Query returns a camelCase string to use as the key in a URL query

func (Param) Slug added in v0.0.29

func (p Param) Slug() string

Slug returns an alphanumeric, lowercased, dashed string

func (Param) Snake added in v0.0.29

func (p Param) Snake() string

Snake returns an alphanumeric, lowercased, underscored string

func (Param) String added in v0.0.29

func (i Param) String() string

func (Param) ToLower added in v0.0.29

func (p Param) ToLower() string

ToLower returns an all lowercase string

type Params

type Params struct {
	URL   *url.URL   `json:"-" mapstructure:"-"`
	Other url.Values `json:"-" mapstructure:"-"`

	// Index Settings
	SrchAttr     []string `query:"searchableAttributes,omitempty" json:"searchableAttributes,omitempty" mapstructure:"searchable_attributes"`
	FacetAttr    []string `query:"attributesForFaceting,omitempty" json:"attributesForFaceting,omitempty" mapstructure:"attributes_for_faceting"`
	SortAttr     []string `query:"sortableAttributes,omitempty" json:"sortableAttributes,omitempty" mapstructure:"sortable_attributes"`
	DefaultField string   `query:"defaultField,omitempty" json:"defaultField,omitempty" mapstructure:"defaultField"`
	UID          string   `query:"uid,omitempty" json:"uid,omitempty" mapstructure:"uid"`

	// Search
	Hits        int      `query:"hits,omitempty" json:"hits,omitempty" mapstructure:"hits"`
	RtrvAttr    []string `query:"attributesToRetrieve,omitempty" json:"attributesToRetrieve,omitempty" mapstructure:"attributes_to_retrieve"`
	Page        int      `query:"page,omitempty" json:"page,omitempty" mapstructure:"page"`
	HitsPerPage int      `query:"hitsPerPage,omitempty" json:"hitsPerPage,omitempty" mapstructure:"hits_per_page"`
	Query       string   `query:"query,omitempty" json:"query,omitempty" mapstructure:"query"`
	SortBy      string   `query:"sortBy,omitempty" json:"sortBy,omitempty" mapstructure:"sort_by"`
	Order       string   `query:"order,omitempty" json:"order,omitempty" mapstructure:"order"`
	// Facets
	Facets       []string `query:"facets,omitempty" json:"facets,omitempty" mapstructure:"facets"`
	Filters      string   `query:"filters,omitempty" json:"filters,omitempty" mapstructure:"filters"`
	FacetFilters []any    `query:"facetFilters,omitempty" json:"facetFilters,omitempty" mapstructure:"facet_filters"`
	SortFacetsBy string   `query:"sortFacetsBy,omitempty" json:"sortFacetsBy,omitempty" mapstructure:"sort_facets_by"`
	MaxFacetVals int      `query:"maxValuesPerFacet,omitempty" json:"maxValuesPerFacet,omitempty" mapstructure:"max_values_per_facet"`

	// Data
	Format string `json:"-" mapstructure:"format"`
	Path   string `json:"-" mapstructure:"path"`
	Route  string `json:"-" mapstructure:"route"`
}

Params is a structure for search params

func DecodeSnakeMap added in v0.0.29

func DecodeSnakeMap(settings map[string]any) (*Params, error)

DecodeSnakeMap decodes a map with snakecase keys to Params

func New

func New() *Params

New initializes a Params structure with a non-nil URL

func Parse

func Parse(params string) (*Params, error)

Parse parses an encoded URL into a Params struct

func (*Params) Encode

func (p *Params) Encode() string

func (*Params) Has

func (s *Params) Has(key Param) bool

func (Params) Index

func (p Params) Index() url.Values

Index returns a url.Values with only index setting params

func (Params) Search

func (p Params) Search() url.Values

Search returns a url.Values with only search params

func (*Params) Set

func (s *Params) Set(v url.Values) error

func (*Params) String

func (p *Params) String() string

func (*Params) Values

func (s *Params) Values() url.Values

Jump to

Keyboard shortcuts

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