add query appendf
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package arango
|
package arango
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -36,6 +37,18 @@ func (query *Query) Append(line string, values ...any) *Query {
|
|||||||
return query.BindMap(params)
|
return query.BindMap(params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Appendf adds a line to the query, replacing values directly into the string using standard formatting syntax.
|
||||||
|
// This is a shorthand for:
|
||||||
|
//
|
||||||
|
// // query *Query
|
||||||
|
// query.Append(fmt.Sprintf("my format (%s)", "example"))
|
||||||
|
//
|
||||||
|
// This method does not attach values to bind parameters.
|
||||||
|
func (query *Query) Appendf(line string, a ...any) *Query {
|
||||||
|
line = fmt.Sprintf(line, a...)
|
||||||
|
return query.Append(line)
|
||||||
|
}
|
||||||
|
|
||||||
// Bind binds a value to a bind parameter.
|
// Bind binds a value to a bind parameter.
|
||||||
func (query *Query) Bind(name string, value any) *Query {
|
func (query *Query) Bind(name string, value any) *Query {
|
||||||
query.Params[name] = value
|
query.Params[name] = value
|
||||||
|
|||||||
@@ -77,6 +77,16 @@ RETURN doc`,
|
|||||||
"title": "Spaghetti",
|
"title": "Spaghetti",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
// Append and Appendf
|
||||||
|
{
|
||||||
|
Input: NewQuery().
|
||||||
|
Appendf("FOR doc IN %s FILTER doc.title == @title RETURN doc", "recipes").
|
||||||
|
Bind("title", "Spaghetti"),
|
||||||
|
ExpectedStr: `FOR doc IN recipes FILTER doc.title == @title RETURN doc`,
|
||||||
|
ExpectedParams: map[string]any{
|
||||||
|
"title": "Spaghetti",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for n, tc := range testCases {
|
for n, tc := range testCases {
|
||||||
|
|||||||
Reference in New Issue
Block a user