Mike Schwörer
45031b05cf
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 1m35s
30 lines
685 B
Go
30 lines
685 B
Go
package pagination
|
|
|
|
import (
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
ct "gogs.mikescher.com/BlackForestBytes/goext/cursortoken"
|
|
)
|
|
|
|
type Filter interface {
|
|
FilterQuery() mongo.Pipeline
|
|
Pagination() (string, ct.SortDirection)
|
|
}
|
|
|
|
type dynamicFilter struct {
|
|
pipeline mongo.Pipeline
|
|
sortField string
|
|
sortDir ct.SortDirection
|
|
}
|
|
|
|
func (d dynamicFilter) FilterQuery() mongo.Pipeline {
|
|
return d.pipeline
|
|
}
|
|
|
|
func (d dynamicFilter) Pagination() (string, ct.SortDirection) {
|
|
return d.sortField, d.sortDir
|
|
}
|
|
|
|
func CreateFilter(pipeline mongo.Pipeline, sortField string, sortdir ct.SortDirection) Filter {
|
|
return dynamicFilter{pipeline: pipeline, sortField: sortField, sortDir: sortdir}
|
|
}
|