3
0

Application sorting & filtering

This commit is contained in:
Denis Arh
2019-11-12 14:34:44 +01:00
parent b67f6146f6
commit 876f3a7ed0
2 changed files with 16 additions and 1 deletions

View File

@@ -104,6 +104,13 @@ func (r *application) Find(filter types.ApplicationFilter) (set types.Applicatio
query = query.Where(f.IsReadable)
}
if f.Query != "" {
qs := "%" + f.Query + "%"
query = query.Where(squirrel.Or{
squirrel.Like{"name": qs},
})
}
var orderBy []string
if orderBy, err = rh.ParseOrder(f.Sort, r.columns()...); err != nil {
return

View File

@@ -2,6 +2,7 @@ package rest
import (
"context"
"strings"
"github.com/titpetric/factory/resputil"
@@ -50,10 +51,17 @@ func (Application) New() *Application {
}
func (ctrl *Application) List(ctx context.Context, r *request.ApplicationList) (interface{}, error) {
normalizeSortColumns := strings.NewReplacer(
"createdAt",
"created_at",
)
f := types.ApplicationFilter{
Name: r.Name,
Query: r.Query,
Sort: r.Sort,
Sort: normalizeSortColumns.Replace(r.Sort),
PageFilter: rh.Paging(r.Page, r.PerPage),
}