added basic fields wildcard support

This commit is contained in:
Gani Georgiev
2023-08-23 20:50:36 +03:00
parent ff6904f1f8
commit cdbe6d78d3
3 changed files with 91 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import (
"strings"
"github.com/labstack/echo/v5"
"github.com/pocketbase/pocketbase/tools/list"
"github.com/pocketbase/pocketbase/tools/search"
)
@@ -94,6 +95,24 @@ func pickMapFields(data map[string]any, fields []string) {
return // nothing to pick
}
if list.ExistInSlice("*", fields) {
// append all missing root level data keys
for k := range data {
var exists bool
for _, f := range fields {
if strings.HasPrefix(f+".", k+".") {
exists = true
break
}
}
if !exists {
fields = append(fields, k)
}
}
}
DataLoop:
for k := range data {
matchingFields := make([]string, 0, len(fields))