1
0
mirror of https://github.com/beego/bee.git synced 2024-11-25 04:40:54 +00:00

Generate Model Function GetAll filters fix

This commit is contained in:
Christian David 2022-01-18 23:14:28 -03:00
parent 8f8166b3da
commit da848c0104

View File

@ -144,6 +144,7 @@ import (
"fmt" "fmt"
"reflect" "reflect"
"strings" "strings"
"strconv"
{{timePkg}} {{timePkg}}
"github.com/beego/beego/v2/client/orm" "github.com/beego/beego/v2/client/orm"
) )
@ -183,8 +184,22 @@ func GetAll{{modelName}}(query map[string]string, fields []string, sortby []stri
for k, v := range query { for k, v := range query {
// rewrite dot-notation to Object__Attribute // rewrite dot-notation to Object__Attribute
k = strings.Replace(k, ".", "__", -1) k = strings.Replace(k, ".", "__", -1)
//value should be boolean
if v == "true" || v == "false" {
v2, _ := strconv.ParseBool(v)
qs = qs.Filter(k, v2)
//Filter contain array of values using "in" filter
} else if strings.HasSuffix(k, "__in") {
var v2 []interface{}
args := strings.Split(v, ",")
for _, v3 := range args {
v2 = append(v2, v3)
}
qs = qs.Filter(k, v2...)
} else {
qs = qs.Filter(k, v) qs = qs.Filter(k, v)
} }
}
// order by: // order by:
var sortFields []string var sortFields []string
if len(sortby) != 0 { if len(sortby) != 0 {