package main import ( // External we "git.gibonuddevalla.se/go/wrappederror" // Standard "database/sql" ) /* type Problem struct { ID int Name string SectionID int Expression string DatapointNames []string } */ func ProblemStart(trigger Trigger) (err error) { row := service.Db.Conn.QueryRow(` SELECT COUNT(id) FROM problem WHERE trigger_id = $1 AND "end" IS NULL GROUP BY trigger_id `, trigger.ID, ) var openProblems int err = row.Scan(&openProblems) if err != nil && err != sql.ErrNoRows { err = we.Wrap(err).WithData(trigger.ID) return } // Open up a new problem if no open exists. if openProblems == 0 { _, err = service.Db.Conn.Exec(`INSERT INTO problem(trigger_id) VALUES($1)`, trigger.ID) if err != nil { err = we.Wrap(err).WithData(trigger) } } return } func ProblemClose(trigger Trigger) (err error) { _, err = service.Db.Conn.Exec(`UPDATE problem SET "end"=NOW() WHERE trigger_id=$1 AND "end" IS NULL`, trigger.ID) if err != nil { err = we.Wrap(err).WithData(trigger) return } return }