diff --git a/handlers/downtimes.go b/handlers/downtimes.go index c9f26670..a409b535 100644 --- a/handlers/downtimes.go +++ b/handlers/downtimes.go @@ -93,7 +93,7 @@ func apiAllDowntimesForServiceHandler(w http.ResponseWriter, r *http.Request) { serviceId := utils.ToInt(vars["service_id"]) ninetyDaysAgo := time.Now().Add(time.Duration(-90*24) * time.Hour) - downtime, err := downtimes.FindByService(serviceId, ninetyDaysAgo, time.Now()) + downtime, err := downtimes.FindByServiceAndDuration(serviceId, ninetyDaysAgo, time.Now()) if err != nil { sendErrorJson(err, w, r) return diff --git a/handlers/services.go b/handlers/services.go index e553c06a..3c93d593 100644 --- a/handlers/services.go +++ b/handlers/services.go @@ -545,11 +545,12 @@ func apiAllServicesStatusHandler(w http.ResponseWriter, r *http.Request) { t = query.Get("time") } var srvs []services.ServiceWithDowntime + servicesList := services.AllInOrder() m := make(map[int64]downtimes.Downtime) if t == "" { - for _, v := range services.AllInOrder() { + for _, v := range servicesList { if v.Online == false { - downtime := downtimes.FindDowntime2(v.Id) + downtime := downtimes.FindLatestDowntimeOfService(v.Id) m[v.Id] = downtime } } @@ -560,7 +561,7 @@ func apiAllServicesStatusHandler(w http.ResponseWriter, r *http.Request) { } } - for _, v := range services.AllInOrder() { + for _, v := range servicesList { var serviceDowntimeVar services.ServiceWithDowntime serviceDowntimeVar.Service = v if vv, ok := m[v.Id]; ok == true { diff --git a/types/downtimes/database.go b/types/downtimes/database.go index 8b21c86d..3a63b70e 100644 --- a/types/downtimes/database.go +++ b/types/downtimes/database.go @@ -53,7 +53,7 @@ func (c *Downtime) BeforeUpdate() error { return c.Validate() } -func FindByService(service int64, start time.Time, end time.Time) (*[]Downtime, error) { +func FindByServiceAndDuration(service int64, start time.Time, end time.Time) (*[]Downtime, error) { var downtime []Downtime q := db.Where("service = ? and start BETWEEN ? AND ? ", service, start, end) q = q.Order("id ASC ").Find(&downtime) @@ -67,7 +67,7 @@ func FindDowntime(timeVar time.Time) []Downtime { return downtime } -func FindDowntime2(service int64) Downtime { +func FindLatestDowntimeOfService(service int64) Downtime { var downtime Downtime q := db.Where("service = ?", service) q = q.Order("start desc").First(&downtime)