// JSONLookup look up a value by the json property name func (p Parameter) JSONLookup(token string) (interface{}, error) { if ex, ok := p.Extensions[token]; ok { return &ex, nil } if token == "$ref" { return &p.Ref, nil } r, _, err := jsonpointer.GetForToken(p.CommonValidations, token) if err != nil && !strings.HasPrefix(err.Error(), "object has no field") { return nil, err } if r != nil { return r, nil } r, _, err = jsonpointer.GetForToken(p.SimpleSchema, token) if err != nil && !strings.HasPrefix(err.Error(), "object has no field") { return nil, err } if r != nil { return r, nil } r, _, err = jsonpointer.GetForToken(p.ParamProps, token) return r, err }
// JSONLookup implements an interface to customize json pointer lookup func (s SchemaOrArray) JSONLookup(token string) (interface{}, error) { if _, err := strconv.Atoi(token); err == nil { r, _, err := jsonpointer.GetForToken(s.Schemas, token) return r, err } r, _, err := jsonpointer.GetForToken(s.Schema, token) return r, err }
// JSONLookup look up a value by the json property name func (o Operation) JSONLookup(token string) (interface{}, error) { if ex, ok := o.Extensions[token]; ok { return &ex, nil } r, _, err := jsonpointer.GetForToken(o.OperationProps, token) return r, err }
// JSONLookup implements an interface to customize json pointer lookup func (s SchemaOrBool) JSONLookup(token string) (interface{}, error) { if token == "allows" { return s.Allows, nil } r, _, err := jsonpointer.GetForToken(s.Schema, token) return r, err }
// JSONLookup look up a value by the json property name func (s Swagger) JSONLookup(token string) (interface{}, error) { if ex, ok := s.Extensions[token]; ok { return &ex, nil } r, _, err := jsonpointer.GetForToken(s.SwaggerProps, token) return r, err }
// JSONLookup implements an interface to customize json pointer lookup func (s Schema) JSONLookup(token string) (interface{}, error) { if ex, ok := s.Extensions[token]; ok { return &ex, nil } if ex, ok := s.ExtraProps[token]; ok { return &ex, nil } r, _, err := jsonpointer.GetForToken(s.SchemaProps, token) if r != nil || err != nil { return r, err } r, _, err = jsonpointer.GetForToken(s.SwaggerSchemaProps, token) return r, err }
// JSONLookup look up a value by the json property name func (p Response) JSONLookup(token string) (interface{}, error) { if token == "$ref" { return &p.Ref, nil } r, _, err := jsonpointer.GetForToken(p.ResponseProps, token) return r, err }
// JSONLookup look up a value by the json property name func (i Info) JSONLookup(token string) (interface{}, error) { if ex, ok := i.Extensions[token]; ok { return &ex, nil } r, _, err := jsonpointer.GetForToken(i.InfoProps, token) return r, err }
// JSONLookup implements an interface to customize json pointer lookup func (s Schema) JSONLookup(token string) (interface{}, error) { if ex, ok := s.Extensions[token]; ok { return &ex, nil } if ex, ok := s.ExtraProps[token]; ok { return &ex, nil } r, _, err := jsonpointer.GetForToken(s.SchemaProps, token) if r != nil || (err != nil && !strings.HasPrefix(err.Error(), "object has no field")) { return r, err } r, _, err = jsonpointer.GetForToken(s.SwaggerSchemaProps, token) return r, err }
// JSONLookup implements an interface to customize json pointer lookup func (t Tag) JSONLookup(token string) (interface{}, error) { if ex, ok := t.Extensions[token]; ok { return &ex, nil } r, _, err := jsonpointer.GetForToken(t.tagProps, token) return r, err }
func nextRef(startingNode interface{}, startingRef *Ref, ptr *jsonpointer.Pointer) *Ref { if startingRef == nil { return nil } if ptr == nil { return startingRef } ret := startingRef var idRef *Ref node := startingNode for _, tok := range ptr.DecodedTokens() { node, _, _ = jsonpointer.GetForToken(node, tok) if node == nil { break } idRef, _ = idFromNode(node) if idRef != nil { nw, err := ret.Inherits(*idRef) if err != nil { break } ret = nw } refRef, _, _ := refPtr.Get(node) if refRef != nil { var rf Ref switch value := refRef.(type) { case string: rf, _ = NewRef(value) } nw, err := ret.Inherits(rf) if err != nil { break } nwURL := nw.GetURL() if nwURL.Scheme == "file" || (nwURL.Scheme == "" && nwURL.Host == "") { nwpt := filepath.ToSlash(nwURL.Path) if filepath.IsAbs(nwpt) { _, err := os.Stat(nwpt) if err != nil { nwURL.Path = filepath.Join(".", nwpt) } } } ret = nw } } return ret }
// JSONLookup look up a value by the json property name func (p PathItem) JSONLookup(token string) (interface{}, error) { if ex, ok := p.Extensions[token]; ok { return &ex, nil } if token == "$ref" { return &p.Ref, nil } r, _, err := jsonpointer.GetForToken(p.pathItemProps, token) return r, err }
func nextRef(startingNode interface{}, startingRef *Ref, ptr *jsonpointer.Pointer) *Ref { if startingRef == nil { return nil } if ptr == nil { return startingRef } ret := startingRef var idRef *Ref node := startingNode for _, tok := range ptr.DecodedTokens() { node, _, _ = jsonpointer.GetForToken(node, tok) if node == nil { break } idRef, _ = idFromNode(node) if idRef != nil { nw, err := ret.Inherits(*idRef) if err != nil { break } ret = nw } refRef, _, _ := refPtr.Get(node) if refRef != nil { rf, _ := NewRef(refRef.(string)) nw, err := ret.Inherits(rf) if err != nil { break } ret = nw } } return ret }
// JSONLookup implements an interface to customize json pointer lookup func (s SchemaOrStringArray) JSONLookup(token string) (interface{}, error) { r, _, err := jsonpointer.GetForToken(s.Schema, token) return r, err }