mirror of https://github.com/statping/statping
Merge pull request #26 from razorpay/status_tree_bug_fix
Status Tree null time bug_fixpull/1097/head
commit
1892461955
|
@ -93,7 +93,7 @@ func apiAllDowntimesForServiceHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
serviceId := utils.ToInt(vars["service_id"])
|
serviceId := utils.ToInt(vars["service_id"])
|
||||||
ninetyDaysAgo := time.Now().Add(time.Duration(-90*24) * time.Hour)
|
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 {
|
if err != nil {
|
||||||
sendErrorJson(err, w, r)
|
sendErrorJson(err, w, r)
|
||||||
return
|
return
|
||||||
|
|
|
@ -545,12 +545,23 @@ func apiAllServicesStatusHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
t = query.Get("time")
|
t = query.Get("time")
|
||||||
}
|
}
|
||||||
var srvs []services.ServiceWithDowntime
|
var srvs []services.ServiceWithDowntime
|
||||||
dtime := findAllDowntimes(t)
|
servicesList := services.AllInOrder()
|
||||||
m := make(map[int64]downtimes.Downtime)
|
m := make(map[int64]downtimes.Downtime)
|
||||||
|
if t == "" {
|
||||||
|
for _, v := range servicesList {
|
||||||
|
if v.Online == false {
|
||||||
|
downtime := downtimes.FindLatestDowntimeOfService(v.Id)
|
||||||
|
m[v.Id] = downtime
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dtime := findAllDowntimes(t)
|
||||||
for i := 0; i < len(dtime); i += 1 {
|
for i := 0; i < len(dtime); i += 1 {
|
||||||
m[dtime[i].ServiceId] = dtime[i]
|
m[dtime[i].ServiceId] = dtime[i]
|
||||||
}
|
}
|
||||||
for _, v := range services.AllInOrder() {
|
}
|
||||||
|
|
||||||
|
for _, v := range servicesList {
|
||||||
var serviceDowntimeVar services.ServiceWithDowntime
|
var serviceDowntimeVar services.ServiceWithDowntime
|
||||||
serviceDowntimeVar.Service = v
|
serviceDowntimeVar.Service = v
|
||||||
if vv, ok := m[v.Id]; ok == true {
|
if vv, ok := m[v.Id]; ok == true {
|
||||||
|
|
|
@ -53,10 +53,10 @@ func (c *Downtime) BeforeUpdate() error {
|
||||||
return c.Validate()
|
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
|
var downtime []Downtime
|
||||||
q := db.Where("service = ? and start BETWEEN ? AND ? ", service, start, end)
|
q := db.Where("service = ? and start BETWEEN ? AND ?", service, start, end)
|
||||||
q = q.Order("id ASC ").Find(&downtime)
|
q = q.Order("id ASC").Find(&downtime)
|
||||||
return &downtime, q.Error()
|
return &downtime, q.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,6 +67,13 @@ func FindDowntime(timeVar time.Time) []Downtime {
|
||||||
return downtime
|
return downtime
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FindLatestDowntimeOfService(service int64) Downtime {
|
||||||
|
var downtime Downtime
|
||||||
|
q := db.Where("service = ?", service)
|
||||||
|
q = q.Order("start desc").First(&downtime)
|
||||||
|
return downtime
|
||||||
|
}
|
||||||
|
|
||||||
func FindAll(vars map[string]string) (*[]Downtime, error) {
|
func FindAll(vars map[string]string) (*[]Downtime, error) {
|
||||||
var downtime []Downtime
|
var downtime []Downtime
|
||||||
var start time.Time
|
var start time.Time
|
||||||
|
|
|
@ -68,7 +68,7 @@ func (s Service) Duration() time.Duration {
|
||||||
|
|
||||||
func (s Service) DowntimeData(start time.Time, end time.Time) (*UptimeSeries, *[]downtimes.Downtime, error) {
|
func (s Service) DowntimeData(start time.Time, end time.Time) (*UptimeSeries, *[]downtimes.Downtime, error) {
|
||||||
|
|
||||||
downtimesList, _ := downtimes.FindByService(s.Id, start, end)
|
downtimesList, _ := downtimes.FindByServiceAndDuration(s.Id, start, end)
|
||||||
|
|
||||||
response := &UptimeSeries{
|
response := &UptimeSeries{
|
||||||
Start: start,
|
Start: start,
|
||||||
|
|
Loading…
Reference in New Issue