MCPcopy Create free account
hub / github.com/cloudwan/gohan / fillObjectDefaults

Function fillObjectDefaults

schema/resource.go:152–174  ·  view source on GitHub ↗
(objectProperty Property, resourceMap, objectMask map[string]interface{})

Source from the content-addressed store, hash-verified

150}
151
152func fillObjectDefaults(objectProperty Property, resourceMap, objectMask map[string]interface{}) {
153 for objectPropertyID, objectPropertyIface := range objectProperty.Properties {
154 objectPropertyMap := objectPropertyIface.(map[string]interface{})
155 innerProperty := NewPropertyFromObj(objectPropertyID, objectPropertyMap, false)
156 if objectMaskInnerProperty, ok := objectMask[objectPropertyID]; ok {
157 resourceFilledProperty, resourceFilled := resourceMap[objectPropertyID]
158 if innerProperty.Type == "object" {
159 innerPropertyMaskMap := objectMaskInnerProperty.(map[string]interface{})
160 if resourceFilled {
161 fillObjectDefaults(*innerProperty, resourceFilledProperty.(map[string]interface{}), innerPropertyMaskMap)
162 } else {
163 if innerPropertyMaskMap != nil && innerProperty.Default != nil {
164 resourceMap[objectPropertyID] = innerPropertyMaskMap
165 }
166 }
167 } else {
168 if !resourceFilled {
169 resourceMap[objectPropertyID] = objectMaskInnerProperty
170 }
171 }
172 }
173 }
174}
175
176//PopulateDefaults Populates not provided data with defaults
177func (resource *Resource) PopulateDefaults() error {

Callers 1

PopulateDefaultsMethod · 0.85

Calls 1

NewPropertyFromObjFunction · 0.85

Tested by

no test coverage detected