3
0

Refactor record repo

This commit is contained in:
Denis Arh
2019-10-17 11:44:58 +02:00
parent 8db0c424ed
commit 69fb843b54
5 changed files with 54 additions and 61 deletions

View File

@@ -1,6 +1,8 @@
package rh
import (
"strings"
"gopkg.in/Masterminds/squirrel.v1"
)
@@ -44,3 +46,37 @@ func (f squirrelFunction) ToSql() (sql string, args []interface{}, err error) {
return
}
type (
squirrelConcatExpr struct {
parts []string
args []interface{}
err error
}
)
func SquirrelConcatExpr(args ...interface{}) squirrel.Sqlizer {
var w = new(squirrelConcatExpr)
for _, a := range args {
if w.err != nil {
break
}
switch o := a.(type) {
case string:
w.parts = append(w.parts, o)
case squirrel.Sqlizer:
p, a, err := o.ToSql()
w.parts = append(w.parts, p)
w.args = append(w.args, a...)
w.err = err
}
}
return w
}
func (w *squirrelConcatExpr) ToSql() (string, []interface{}, error) {
return strings.Join(w.parts, ""), w.args, w.err
}