Trigger expression evaluated and problems managed
This commit is contained in:
parent
ffe0c3def2
commit
b0a0f9290e
3 changed files with 82 additions and 20 deletions
26
trigger.go
26
trigger.go
|
|
@ -4,7 +4,6 @@ import (
|
|||
// External
|
||||
we "git.gibonuddevalla.se/go/wrappederror"
|
||||
"github.com/expr-lang/expr"
|
||||
"github.com/jmoiron/sqlx"
|
||||
|
||||
// Standard
|
||||
"encoding/json"
|
||||
|
|
@ -76,31 +75,26 @@ func TriggersRetrieve() (areas []Area, err error) { // {{{
|
|||
} // }}}
|
||||
func TriggersRetrieveByDatapoint(datapointName string) (triggers []Trigger, err error) { // {{{
|
||||
triggers = []Trigger{}
|
||||
var rows *sqlx.Rows
|
||||
|
||||
rows, err = service.Db.Conn.Queryx(`
|
||||
SELECT
|
||||
*
|
||||
FROM public."trigger"
|
||||
row := service.Db.Conn.QueryRow(`
|
||||
SELECT jsonb_agg(t.*)
|
||||
FROM public."trigger" t
|
||||
WHERE
|
||||
datapoints @> $1
|
||||
`,
|
||||
fmt.Sprintf(`["%s"]`, datapointName),
|
||||
)
|
||||
|
||||
var data []byte
|
||||
err = row.Scan(&data)
|
||||
if err != nil {
|
||||
err = we.Wrap(err).WithData(datapointName)
|
||||
return
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
trigger := Trigger{}
|
||||
err = rows.StructScan(&trigger)
|
||||
if err != nil {
|
||||
err = we.Wrap(err).WithData(datapointName)
|
||||
return
|
||||
}
|
||||
triggers = append(triggers, trigger)
|
||||
err = json.Unmarshal(data, &triggers)
|
||||
if err != nil {
|
||||
err = we.Wrap(err).WithData(datapointName)
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue