package
0.0.9
Repository: https://github.com/apito-io/databasedriver.git
Documentation: pkg.go.dev

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
func returnAQLObjectBuilderBk(_var string, _pv string, nestedMedia bool, _map map[string]*FieldDetails) ([]string, string, error) { var vals []string for k, v := range _map { if v.Value != nil { switch v.FieldType { case "repeated": if !contains([]string{"data", "meta", "created_by", "last_modified_by"}, k) { // skip for data object _nestedVar := utility.RandomVariableGenerator(4) _returns, _pvr, err := returnAQLObjectBuilderBk(_nestedVar, _pv, false, v.Value.(map[string]*FieldDetails)) if err != nil { return nil, "", err } vals = append(vals, fmt.Sprintf(`"%s" : ( FOR %s in NOT_NULL(%s) ? %s : [] RETURN { %s } )`, k, _nestedVar, _pvr, _pvr, strings.Join(_returns, ", "))) } else { _returns, _, err := returnAQLObjectBuilderBk(_var, _pv, false, v.Value.(map[string]*FieldDetails)) if err != nil { return nil, "", err } vals = append(vals, fmt.Sprintf(`"%s" : { %s }`, k, strings.Join(_returns, ", "))) } break case "media", "multiline", "geo": if v.Validation != nil && v.Validation.IsGallery { // multiple media is an array _nestedVar := utility.RandomVariableGenerator(4) _returns, _pvr, err := returnAQLObjectBuilderBk(_nestedVar, _pv, false, v.Value.(map[string]*FieldDetails)) if err != nil { return nil, "", err } vals = append(vals, fmt.Sprintf(`"%s" : ( FOR %s in NOT_NULL(%s) ? %s : [] RETURN { %s } )`, k, _nestedVar, _pvr, _pvr, strings.Join(_returns, ", "))) } else { _returns, _pvr, err := returnAQLObjectBuilderBk(_var, _pv, true, v.Value.(map[string]*FieldDetails)) if err != nil { return nil, "", err } _pv = _pvr vals = append(vals, fmt.Sprintf(`"%s" : { %s }`, k, strings.Join(_returns, ", "))) } break default: if _var == "" { vals = append(vals, fmt.Sprintf(`"%s" : %s`, k, v.Value.(string))) } else if nestedMedia { // media in repeated field if val, ok := v.Value.(string); ok { splits := strings.Split(val, ".") end := strings.Join(splits[len(splits)-2:len(splits)], ".") vals = append(vals, fmt.Sprintf(`"%s" : %s.%s`, k, _var, end)) start := strings.Join(splits[:len(splits)-2], ".") _pv = start } } else { if val, ok := v.Value.(string); ok { splitAt := strings.LastIndex(val, ".") vals = append(vals, fmt.Sprintf(`"%s" : %s.%s`, k, _var, val[splitAt+1:len(val)])) _pv = val[:splitAt] } } } } } return vals, _pv, nil } */.
No description provided by the author
No description provided by the author