Application sorting & filtering
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user