Info icon for problem values
This commit is contained in:
parent
aa368c0b0d
commit
df714c750b
5 changed files with 80 additions and 25 deletions
58
problem.go
58
problem.go
|
|
@ -7,22 +7,26 @@ import (
|
|||
// Standard
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Problem struct {// {{{
|
||||
ID int
|
||||
Start time.Time
|
||||
End sql.NullTime
|
||||
Acknowledged bool
|
||||
Datapoints map[string]any
|
||||
TriggerID int `json:"trigger_id"`
|
||||
TriggerName string `json:"trigger_name"`
|
||||
AreaName string `json:"area_name"`
|
||||
SectionName string `json:"section_name"`
|
||||
}// }}}
|
||||
type Problem struct { // {{{
|
||||
ID int
|
||||
Start time.Time
|
||||
End sql.NullTime
|
||||
Acknowledged bool
|
||||
Datapoints map[string]any
|
||||
DatapointValues map[string]any `json:"datapoints"`
|
||||
TriggerID int `json:"trigger_id"`
|
||||
TriggerName string `json:"trigger_name"`
|
||||
AreaName string `json:"area_name"`
|
||||
SectionName string `json:"section_name"`
|
||||
} // }}}
|
||||
|
||||
func ProblemsRetrieve() (problems []Problem, err error) {// {{{
|
||||
func ProblemsRetrieve() (problems []Problem, err error) { // {{{
|
||||
problems = []Problem{}
|
||||
row := service.Db.Conn.QueryRow(`
|
||||
SELECT
|
||||
|
|
@ -33,6 +37,7 @@ func ProblemsRetrieve() (problems []Problem, err error) {// {{{
|
|||
p.start,
|
||||
p.end,
|
||||
p.acknowledged,
|
||||
p.datapoints,
|
||||
t.id AS trigger_id,
|
||||
t.name AS trigger_name,
|
||||
a.name AS area_name,
|
||||
|
|
@ -53,6 +58,7 @@ func ProblemsRetrieve() (problems []Problem, err error) {// {{{
|
|||
null,
|
||||
null,
|
||||
false,
|
||||
'{}',
|
||||
-1 AS trigger_id,
|
||||
CONCAT(
|
||||
'NODATA: ',
|
||||
|
|
@ -84,8 +90,8 @@ func ProblemsRetrieve() (problems []Problem, err error) {// {{{
|
|||
err = we.Wrap(err)
|
||||
}
|
||||
return
|
||||
}// }}}
|
||||
func ProblemStart(trigger Trigger) (problemID int, err error) {// {{{
|
||||
} // }}}
|
||||
func ProblemStart(trigger Trigger) (problemID int, err error) { // {{{
|
||||
row := service.Db.Conn.QueryRow(`
|
||||
SELECT COUNT(id)
|
||||
FROM problem
|
||||
|
|
@ -113,8 +119,8 @@ func ProblemStart(trigger Trigger) (problemID int, err error) {// {{{
|
|||
}
|
||||
}
|
||||
return
|
||||
}// }}}
|
||||
func ProblemClose(trigger Trigger) (problemID int, err error) {// {{{
|
||||
} // }}}
|
||||
func ProblemClose(trigger Trigger) (problemID int, err error) { // {{{
|
||||
row := service.Db.Conn.QueryRow(`UPDATE problem SET "end"=NOW() WHERE trigger_id=$1 AND "end" IS NULL RETURNING id`, trigger.ID)
|
||||
err = row.Scan(&problemID)
|
||||
|
||||
|
|
@ -128,12 +134,26 @@ func ProblemClose(trigger Trigger) (problemID int, err error) {// {{{
|
|||
return
|
||||
}
|
||||
return
|
||||
}// }}}
|
||||
func ProblemAcknowledge(id int, state bool) (err error) {// {{{
|
||||
} // }}}
|
||||
func ProblemAcknowledge(id int, state bool) (err error) { // {{{
|
||||
_, err = service.Db.Conn.Exec(`UPDATE problem SET "acknowledged"=$2 WHERE id=$1`, id, state)
|
||||
if err != nil {
|
||||
err = we.Wrap(err).WithData(id)
|
||||
return
|
||||
}
|
||||
return
|
||||
}// }}}
|
||||
} // }}}
|
||||
|
||||
func (p Problem) FormattedValues() string {
|
||||
out := []string{}
|
||||
for key, val := range p.DatapointValues {
|
||||
timeVal, ok := val.(time.Time)
|
||||
if ok {
|
||||
logger.Info("FOO", "timeVal", timeVal)
|
||||
}
|
||||
out = append(out, fmt.Sprintf("%s: %v", key, val))
|
||||
}
|
||||
sort.Strings(out)
|
||||
|
||||
return strings.Join(out, "\n")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue