statping/types/incidents/database.go

95 lines
1.9 KiB
Go
Raw Normal View History

2020-03-04 10:29:00 +00:00
package incidents
import (
"github.com/statping/statping/database"
2020-06-16 11:02:14 +00:00
"github.com/statping/statping/types/metrics"
"github.com/statping/statping/utils"
)
2020-03-04 10:29:00 +00:00
2020-03-13 04:06:06 +00:00
var (
db database.Database
dbUpdate database.Database
log = utils.Log.WithField("type", "service")
2020-03-13 04:06:06 +00:00
)
2020-03-10 05:24:35 +00:00
func SetDB(database database.Database) {
db = database.Model(&Incident{})
2020-03-13 04:06:06 +00:00
dbUpdate = database.Model(&IncidentUpdate{})
2020-03-10 05:24:35 +00:00
}
2020-06-16 11:02:14 +00:00
func (i *Incident) AfterFind() {
metrics.Query("incident", "find")
}
func (i *Incident) AfterCreate() {
metrics.Query("incident", "create")
}
func (i *Incident) AfterUpdate() {
metrics.Query("incident", "update")
}
func (i *Incident) AfterDelete() {
metrics.Query("incident", "delete")
}
func (i *IncidentUpdate) AfterFind() {
metrics.Query("incident_update", "find")
}
func (i *IncidentUpdate) AfterCreate() {
metrics.Query("incident_update", "create")
}
func (i *IncidentUpdate) AfterUpdate() {
metrics.Query("incident_update", "update")
}
func (i *IncidentUpdate) AfterDelete() {
metrics.Query("incident_update", "delete")
}
2020-03-16 18:28:45 +00:00
func FindUpdate(uid int64) (*IncidentUpdate, error) {
var update IncidentUpdate
q := dbUpdate.Where("id = ?", uid).Find(&update)
return &update, q.Error()
}
2020-03-04 10:29:00 +00:00
func Find(id int64) (*Incident, error) {
2020-03-06 03:03:18 +00:00
var incident Incident
2020-03-10 05:24:35 +00:00
q := db.Where("id = ?", id).Find(&incident)
return &incident, q.Error()
2020-03-04 10:29:00 +00:00
}
2020-03-13 04:06:06 +00:00
func FindByService(id int64) []*Incident {
var incidents []*Incident
db.Where("service = ?", id).Find(&incidents)
for _, i := range incidents {
var updates []*IncidentUpdate
dbUpdate.Where("incident = ?", id).Find(&updates)
i.AllUpdates = updates
}
return incidents
}
2020-03-04 10:29:00 +00:00
func All() []*Incident {
var incidents []*Incident
2020-03-10 05:24:35 +00:00
db.Find(&incidents)
2020-03-04 10:29:00 +00:00
return incidents
}
func (i *Incident) Create() error {
2020-03-10 05:24:35 +00:00
q := db.Create(i)
return q.Error()
2020-03-04 10:29:00 +00:00
}
func (i *Incident) Update() error {
2020-03-10 05:24:35 +00:00
q := db.Update(i)
return q.Error()
2020-03-04 10:29:00 +00:00
}
func (i *Incident) Delete() error {
2020-03-10 05:24:35 +00:00
q := db.Delete(i)
return q.Error()
2020-03-04 10:29:00 +00:00
}