diff --git a/handlers/services.go b/handlers/services.go index 4aa41043..c6d99ed7 100644 --- a/handlers/services.go +++ b/handlers/services.go @@ -547,25 +547,21 @@ func apiAllServicesStatusHandler(w http.ResponseWriter, r *http.Request) { var srvs []services.ServiceWithDowntime m := make(map[int64]downtimes.Downtime) if t == "" { - timeNow := time.Now() - dtime:=downtimes.FindDowntime2() + dtime := downtimes.FindDowntime2() for i := 0; i < len(dtime); i++ { downtimeVar := dtime[i] - serviceVar,_ := services.Find(downtimeVar.ServiceId) - checkInterval := time.Duration(serviceVar.Interval) - timeInstance := timeNow.Add(-time.Second * checkInterval) - if downtimeVar.End == nil || timeInstance.Before(*(downtimeVar.End)) || timeInstance.Equal(*(downtimeVar.End)) { + serviceVar, _ := services.Find(downtimeVar.ServiceId) + if serviceVar.Online == false { m[downtimeVar.ServiceId] = downtimeVar } } - }else{ + } else { dtime := findAllDowntimes(t) for i := 0; i < len(dtime); i += 1 { m[dtime[i].ServiceId] = dtime[i] } } - for _, v := range services.AllInOrder() { var serviceDowntimeVar services.ServiceWithDowntime serviceDowntimeVar.Service = v diff --git a/types/downtimes/database.go b/types/downtimes/database.go index f11abfa1..86ad1d76 100644 --- a/types/downtimes/database.go +++ b/types/downtimes/database.go @@ -67,7 +67,7 @@ func FindDowntime(timeVar time.Time) []Downtime { return downtime } -func FindDowntime2()[]Downtime { +func FindDowntime2() []Downtime { var downtime []Downtime db.Raw("SELECT DISTINCT ON (downtimes.service) downtimes.* FROM downtimes ORDER BY service ASC, start DESC;").Scan(&downtime) //db.Select("downtimes.*").Joins("left join downtimes as d2 on d2.service = downtimes.service AND downtimes.start < d2.start").Where("d2.end = ?",nil).Find(&downtime)