Managing of problems
This commit is contained in:
parent
c746343dc0
commit
d935eb282b
15 changed files with 588 additions and 36 deletions
67
problem.go
67
problem.go
|
|
@ -6,17 +6,61 @@ import (
|
|||
|
||||
// Standard
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"time"
|
||||
)
|
||||
|
||||
/*
|
||||
type Problem struct {
|
||||
ID int
|
||||
Name string
|
||||
SectionID int
|
||||
Expression string
|
||||
DatapointNames []string
|
||||
ID int
|
||||
Start time.Time
|
||||
End sql.NullTime
|
||||
Acknowledged bool
|
||||
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) {
|
||||
problems = []Problem{}
|
||||
row := service.Db.Conn.QueryRow(`
|
||||
SELECT
|
||||
jsonb_agg(p.*)
|
||||
FROM (
|
||||
SELECT
|
||||
p.id,
|
||||
p.start,
|
||||
p.end,
|
||||
p.acknowledged,
|
||||
t.id AS trigger_id,
|
||||
t.name AS trigger_name,
|
||||
a.name AS area_name,
|
||||
s.name AS section_name
|
||||
FROM problem p
|
||||
INNER JOIN "trigger" t ON p.trigger_id = t.id
|
||||
INNER JOIN section s ON t.section_id = s.id
|
||||
INNER JOIN area a ON s.area_id = a.id
|
||||
|
||||
WHERE
|
||||
p.end IS NULL
|
||||
|
||||
ORDER BY p.start DESC
|
||||
) p
|
||||
`)
|
||||
|
||||
var jsonBody []byte
|
||||
err = row.Scan(&jsonBody)
|
||||
if err != nil {
|
||||
err = we.Wrap(err)
|
||||
return
|
||||
}
|
||||
|
||||
err = json.Unmarshal(jsonBody, &problems)
|
||||
if err != nil {
|
||||
err = we.Wrap(err)
|
||||
}
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
func ProblemStart(trigger Trigger) (err error) {
|
||||
row := service.Db.Conn.QueryRow(`
|
||||
|
|
@ -54,3 +98,12 @@ func ProblemClose(trigger Trigger) (err error) {
|
|||
}
|
||||
return
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue