Trigger expression evaluated and problems managed

This commit is contained in:
Magnus Åhall 2024-04-30 21:23:05 +02:00
parent ffe0c3def2
commit b0a0f9290e
3 changed files with 82 additions and 20 deletions

View file

@ -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