Restructure the go package

This commit is contained in:
2021-12-16 21:57:05 +01:00
parent a9b5ac4df2
commit 39ef200967
26 changed files with 111 additions and 98 deletions
+39
View File
@@ -0,0 +1,39 @@
package params
// Params are generics query argument
type Params struct {
Limit int
Page int
}
// Modifier function takes params and makes some changes
type Modifier func(params Params) Params
// Modifiers is a list of modifier
type Modifiers []Modifier
// Apply function modifies params
func (ms Modifiers) Apply(params Params) Params {
for _, m := range ms {
params = m(params)
}
return params
}
// WithLimit modifier setups the limit
func WithLimit(limit int) Modifier {
return func(params Params) Params {
params.Limit = limit
return params
}
}
// WithPage modifier setups the page
func WithPage(page int) Modifier {
return func(params Params) Params {
params.Page = page
return params
}
}