(b *strings.Builder, query *dql.GraphQuery, prefix string)
| 66 | } |
| 67 | |
| 68 | func writeQuery(b *strings.Builder, query *dql.GraphQuery, prefix string) { |
| 69 | if query.Var != "" || query.Alias != "" || query.Attr != "" { |
| 70 | x.Check2(b.WriteString(prefix)) |
| 71 | } |
| 72 | if query.Var != "" { |
| 73 | x.Check2(b.WriteString(fmt.Sprintf("%s as ", query.Var))) |
| 74 | } |
| 75 | if query.Alias != "" { |
| 76 | x.Check2(b.WriteString(query.Alias)) |
| 77 | x.Check2(b.WriteString(" : ")) |
| 78 | } |
| 79 | x.Check2(b.WriteString(query.Attr)) |
| 80 | |
| 81 | if query.Func != nil { |
| 82 | writeRoot(b, query) |
| 83 | } |
| 84 | |
| 85 | if query.Filter != nil { |
| 86 | x.Check2(b.WriteString(" @filter(")) |
| 87 | writeFilter(b, query.Filter) |
| 88 | x.Check2(b.WriteRune(')')) |
| 89 | } |
| 90 | |
| 91 | if query.Func == nil && hasOrderOrPage(query) { |
| 92 | x.Check2(b.WriteString(" (")) |
| 93 | writeOrderAndPage(b, query, false) |
| 94 | x.Check2(b.WriteRune(')')) |
| 95 | } |
| 96 | |
| 97 | if len(query.Cascade) != 0 { |
| 98 | if query.Cascade[0] == "__all__" { |
| 99 | x.Check2(b.WriteString(" @cascade")) |
| 100 | } else { |
| 101 | x.Check2(b.WriteString(" @cascade(")) |
| 102 | x.Check2(b.WriteString(strings.Join(query.Cascade, ", "))) |
| 103 | x.Check2(b.WriteRune(')')) |
| 104 | } |
| 105 | } |
| 106 | |
| 107 | switch { |
| 108 | case len(query.Children) > 0: |
| 109 | prefixAdd := "" |
| 110 | if query.Attr != "" { |
| 111 | x.Check2(b.WriteString(" {\n")) |
| 112 | prefixAdd = " " |
| 113 | } |
| 114 | for _, c := range query.Children { |
| 115 | writeQuery(b, c, prefix+prefixAdd) |
| 116 | } |
| 117 | if query.Attr != "" { |
| 118 | x.Check2(b.WriteString(prefix)) |
| 119 | x.Check2(b.WriteString("}\n")) |
| 120 | } |
| 121 | case query.Var != "" || query.Alias != "" || query.Attr != "": |
| 122 | x.Check2(b.WriteString("\n")) |
| 123 | } |
| 124 | } |
| 125 |
no test coverage detected