View datapoint values

This commit is contained in:
Magnus Åhall 2024-05-05 20:16:28 +02:00
parent 5f6a48e7e0
commit d72694a8b4
14 changed files with 288 additions and 28 deletions

View file

@ -2,7 +2,7 @@ package main
import (
// External
we "git.gibonuddevalla.se/go/wrappederror"
werr "git.gibonuddevalla.se/go/wrappederror"
"github.com/jmoiron/sqlx"
// Standard
@ -94,7 +94,7 @@ func DatapointAdd[T any](name string, value T) (err error) { // {{{
err = row.Scan(&dpID, &dpType)
if err != nil {
err = we.Wrap(err).WithData(struct {
err = werr.Wrap(err).WithData(struct {
Name string
Value any
}{name, value})
@ -110,7 +110,7 @@ func DatapointAdd[T any](name string, value T) (err error) { // {{{
_, err = service.Db.Conn.Exec(`INSERT INTO datapoint_value(datapoint_id, value_datetime) VALUES($1, $2)`, dpID, value)
}
if err != nil {
err = we.Wrap(err).WithData(struct {
err = werr.Wrap(err).WithData(struct {
ID int
value any
}{dpID, value})
@ -147,7 +147,7 @@ func DatapointsRetrieve() (dps []Datapoint, err error) { // {{{
dp.name ASC
`)
if err != nil {
err = we.Wrap(err)
err = werr.Wrap(err)
}
defer rows.Close()
@ -170,7 +170,7 @@ func DatapointsRetrieve() (dps []Datapoint, err error) { // {{{
res := DbRes{}
err = rows.StructScan(&res)
if err != nil {
err = we.Wrap(err)
err = werr.Wrap(err)
return
}
@ -218,7 +218,7 @@ func DatapointRetrieve(id int, name string) (dp Datapoint, err error) { // {{{
}
if err != nil {
err = we.Wrap(err).WithData(name)
err = werr.Wrap(err).WithData(name)
return
}
@ -238,7 +238,7 @@ func DatapointRetrieve(id int, name string) (dp Datapoint, err error) { // {{{
}
if err != nil {
err = we.Wrap(err).WithData(dp.ID)
err = werr.Wrap(err).WithData(dp.ID)
return
}
@ -247,7 +247,26 @@ func DatapointRetrieve(id int, name string) (dp Datapoint, err error) { // {{{
func DatapointDelete(id int) (err error) {// {{{
_, err = service.Db.Conn.Exec(`DELETE FROM datapoint WHERE id=$1`, id)
if err != nil {
err = we.Wrap(err).WithData(id)
err = werr.Wrap(err).WithData(id)
}
return
}// }}}
func DatapointValues(id int) (values []DatapointValue, err error) {// {{{
rows, err := service.Db.Conn.Queryx(`SELECT * FROM datapoint_value WHERE datapoint_id=$1 ORDER BY ts DESC LIMIT 500`, id)
if err != nil {
err = werr.Wrap(err).WithData(id)
return
}
defer rows.Close()
for rows.Next() {
dpv := DatapointValue{}
err = rows.StructScan(&dpv)
if err != nil {
err = werr.Wrap(err).WithData(id)
return
}
values = append(values, dpv)
}
return
}// }}}