Mercurial > gemma
diff pkg/controllers/importqueue.go @ 3190:54a3e40cfbed
controllers: moved filter builder to a separate file.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 08 May 2019 10:50:14 +0200 |
parents | 813309225e35 |
children | eeff2cc4ff9d |
line wrap: on
line diff
--- a/pkg/controllers/importqueue.go Wed May 08 10:37:47 2019 +0200 +++ b/pkg/controllers/importqueue.go Wed May 08 10:50:14 2019 +0200 @@ -132,30 +132,6 @@ return &ta } -type filterBuilder struct { - stmt strings.Builder - args []interface{} - hasCond bool -} - -func (fb *filterBuilder) arg(format string, v ...interface{}) { - indices := make([]interface{}, len(v)) - for i := range indices { - indices[i] = len(fb.args) + i + 1 - } - fmt.Fprintf(&fb.stmt, format, indices...) - fb.args = append(fb.args, v...) -} - -func (fb *filterBuilder) cond(format string, v ...interface{}) { - if fb.hasCond { - fb.stmt.WriteString(" AND ") - } else { - fb.hasCond = true - } - fb.arg(format, v...) -} - func buildFilters(req *http.Request) (l, b, a *filterBuilder, err error) { l = new(filterBuilder) @@ -177,9 +153,9 @@ b.stmt.WriteString(selectBeforeSQL) cond := func(format string, v ...interface{}) { - l.cond(format, v...) - a.cond(format, v...) - b.cond(format, v...) + l.and(format, v...) + a.and(format, v...) + b.and(format, v...) } if query := req.FormValue("query"); query != "" { @@ -209,8 +185,8 @@ if fromTime, err = time.Parse(models.ImportTimeFormat, from); err != nil { return } - l.cond(" enqueued >= $%d ", fromTime) - b.cond(" enqueued < $%d", fromTime) + l.and(" enqueued >= $%d ", fromTime) + b.and(" enqueued < $%d", fromTime) } else { noBefore = true } @@ -220,8 +196,8 @@ if toTime, err = time.Parse(models.ImportTimeFormat, to); err != nil { return } - l.cond(" enqueued <= $%d ", toTime) - a.cond(" enqueued > $%d", toTime) + l.and(" enqueued <= $%d ", toTime) + a.and(" enqueued > $%d", toTime) } else { noAfter = true }