diff --git a/engine/list_generator.go b/engine/list_generator.go index cd7b776bf..4a07f86fb 100644 --- a/engine/list_generator.go +++ b/engine/list_generator.go @@ -41,12 +41,12 @@ func (g *listGenerator) query(qo model.QueryOptions, offset int, size int) (Entr } func (g *listGenerator) GetNewest(offset int, size int) (Entries, error) { - qo := model.QueryOptions{SortBy: "CreatedAt", Desc: true, Alpha: true} + qo := model.QueryOptions{SortBy: "CreatedAt", Desc: true} return g.query(qo, offset, size) } func (g *listGenerator) GetRecent(offset int, size int) (Entries, error) { - qo := model.QueryOptions{SortBy: "PlayDate", Desc: true, Alpha: true} + qo := model.QueryOptions{SortBy: "PlayDate", Desc: true} return g.query(qo, offset, size) } @@ -61,12 +61,12 @@ func (g *listGenerator) GetHighest(offset int, size int) (Entries, error) { } func (g *listGenerator) GetByName(offset int, size int) (Entries, error) { - qo := model.QueryOptions{SortBy: "Name", Alpha: true} + qo := model.QueryOptions{SortBy: "Name"} return g.query(qo, offset, size) } func (g *listGenerator) GetByArtist(offset int, size int) (Entries, error) { - qo := model.QueryOptions{SortBy: "Artist", Alpha: true} + qo := model.QueryOptions{SortBy: "Artist"} return g.query(qo, offset, size) } diff --git a/model/base.go b/model/base.go index 1d5345a90..b804f7f3f 100644 --- a/model/base.go +++ b/model/base.go @@ -6,10 +6,16 @@ var ( ErrNotFound = errors.New("data not found") ) +// Filters use the same operators as Beego ORM: See https://beego.me/docs/mvc/model/query.md#operators +// Ex: var q = QueryOptions{Filters: Filters{"name__istartswith": "Deluan","age__gt": 25}} +// All conditions will be ANDed together +// TODO Implement filter in repositories' methods +type Filters map[string]interface{} + type QueryOptions struct { - SortBy string - Alpha bool - Desc bool - Offset int - Size int + SortBy string + Desc bool + Offset int + Size int + Filters Filters }