mirror of
https://github.com/niusmallnan/steve.git
synced 2025-08-09 01:07:25 +00:00
Add IsList and List conversion
This commit is contained in:
parent
674f957b8b
commit
68d1d582c3
1
go.mod
1
go.mod
@ -16,6 +16,7 @@ require (
|
|||||||
github.com/rancher/wrangler-api v0.1.5-0.20190619170228-c3525df45215
|
github.com/rancher/wrangler-api v0.1.5-0.20190619170228-c3525df45215
|
||||||
github.com/sirupsen/logrus v1.4.2
|
github.com/sirupsen/logrus v1.4.2
|
||||||
github.com/urfave/cli v1.20.0
|
github.com/urfave/cli v1.20.0
|
||||||
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58
|
||||||
google.golang.org/appengine v1.5.0 // indirect
|
google.golang.org/appengine v1.5.0 // indirect
|
||||||
k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b
|
k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b
|
||||||
k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8
|
k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8
|
||||||
|
35
vendor/github.com/rancher/norman/pkg/types/server_types.go
generated
vendored
35
vendor/github.com/rancher/norman/pkg/types/server_types.go
generated
vendored
@ -119,6 +119,10 @@ func (r *APIRequest) WithContext(ctx context.Context) *APIRequest {
|
|||||||
return &result
|
return &result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *APIRequest) Context() context.Context {
|
||||||
|
return r.Request.Context()
|
||||||
|
}
|
||||||
|
|
||||||
func (r *APIRequest) GetUser() string {
|
func (r *APIRequest) GetUser() string {
|
||||||
user, ok := request.UserFrom(r.Request.Context())
|
user, ok := request.UserFrom(r.Request.Context())
|
||||||
if ok {
|
if ok {
|
||||||
@ -152,7 +156,7 @@ func (r *APIRequest) FilterObject(opts *QueryOptions, schema *Schema, obj APIObj
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *APIRequest) Filter(opts *QueryOptions, schema *Schema, obj APIObject) APIObject {
|
func (r *APIRequest) Filter(opts *QueryOptions, schema *Schema, obj APIObject) APIObject {
|
||||||
if _, ok := obj.ListCheck(); ok {
|
if obj.IsList() {
|
||||||
return r.FilterList(opts, schema, obj)
|
return r.FilterList(opts, schema, obj)
|
||||||
}
|
}
|
||||||
return r.FilterObject(opts, schema, obj)
|
return r.FilterObject(opts, schema, obj)
|
||||||
@ -258,15 +262,40 @@ func (a *APIObject) List() data.List {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *APIObject) IsList() bool {
|
||||||
|
_, ret := a.listCheck(false)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
func (a *APIObject) ListCheck() (data.List, bool) {
|
func (a *APIObject) ListCheck() (data.List, bool) {
|
||||||
|
return a.listCheck(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *APIObject) listCheck(doConvert bool) (data.List, bool) {
|
||||||
if a == nil {
|
if a == nil {
|
||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
if result, ok := a.Object.(data.List); ok {
|
if result, ok := a.Object.(data.List); ok {
|
||||||
return result, true
|
return result, true
|
||||||
}
|
}
|
||||||
result, ok := a.Object.([]map[string]interface{})
|
if result, ok := a.Object.([]map[string]interface{}); ok {
|
||||||
return result, ok
|
return result, true
|
||||||
|
}
|
||||||
|
if result, ok := a.Object.([]interface{}); ok {
|
||||||
|
if !doConvert {
|
||||||
|
return nil, true
|
||||||
|
}
|
||||||
|
mapResult := make(data.List, 0, len(result))
|
||||||
|
for _, obj := range result {
|
||||||
|
asMap, err := convert.EncodeToMap(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
mapResult = append(mapResult, asMap)
|
||||||
|
}
|
||||||
|
return mapResult, true
|
||||||
|
}
|
||||||
|
return nil, false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *APIObject) First() APIObject {
|
func (a *APIObject) First() APIObject {
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -42,6 +42,7 @@ github.com/pkg/errors
|
|||||||
github.com/rancher/norman/pkg/authorization
|
github.com/rancher/norman/pkg/authorization
|
||||||
github.com/rancher/norman/pkg/types
|
github.com/rancher/norman/pkg/types
|
||||||
github.com/rancher/norman/pkg/types/convert
|
github.com/rancher/norman/pkg/types/convert
|
||||||
|
github.com/rancher/norman/pkg/store/empty
|
||||||
github.com/rancher/norman/pkg/types/values
|
github.com/rancher/norman/pkg/types/values
|
||||||
github.com/rancher/norman/pkg/api/builtin
|
github.com/rancher/norman/pkg/api/builtin
|
||||||
github.com/rancher/norman/pkg/store/proxy
|
github.com/rancher/norman/pkg/store/proxy
|
||||||
@ -52,7 +53,6 @@ github.com/rancher/norman/pkg/httperror
|
|||||||
github.com/rancher/norman/pkg/types/slice
|
github.com/rancher/norman/pkg/types/slice
|
||||||
github.com/rancher/norman/pkg/data
|
github.com/rancher/norman/pkg/data
|
||||||
github.com/rancher/norman/pkg/types/definition
|
github.com/rancher/norman/pkg/types/definition
|
||||||
github.com/rancher/norman/pkg/store/empty
|
|
||||||
github.com/rancher/norman/pkg/store/schema
|
github.com/rancher/norman/pkg/store/schema
|
||||||
github.com/rancher/norman/pkg/types/convert/merge
|
github.com/rancher/norman/pkg/types/convert/merge
|
||||||
github.com/rancher/norman/pkg/api/access
|
github.com/rancher/norman/pkg/api/access
|
||||||
|
Loading…
Reference in New Issue
Block a user