From de0859ade4ea132e4482138c5c63f547c859b938 Mon Sep 17 00:00:00 2001 From: Rhythm <35167328+kRhythm@users.noreply.github.com> Date: Wed, 8 Dec 2021 12:16:53 +0530 Subject: [PATCH] modified to r.query --- handlers/downtimes.go | 25 ++++++++++++++++++++++--- types/downtimes/database.go | 24 ++++++++++++------------ 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/handlers/downtimes.go b/handlers/downtimes.go index df45cac6..7e04a8fd 100644 --- a/handlers/downtimes.go +++ b/handlers/downtimes.go @@ -7,6 +7,7 @@ import ( "github.com/statping/statping/types/services" "github.com/statping/statping/utils" "net/http" + "net/url" "time" ) @@ -21,15 +22,33 @@ func findDowntime(r *http.Request) (*downtimes.Downtime, error) { return downtime, nil } +func convertToMap(query url.Values) map[string]string{ + vars := make(map[string]string) + if query.Get("start")!= "" { + vars["start"] = query.Get("start") + } + if query.Get("end")!= "" { + vars["end"] = query.Get("end") + } + if query.Get("sub_status")!= "" { + vars["sub_status"] = query.Get("sub_status") + } + if query.Get("service_id")!= "" { + vars["service_id"] = query.Get("service_id") + } + if query.Get("type")!= "" { + vars["type"] = query.Get("type") + } + return vars +} func apiAllDowntimes(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - fmt.Println(vars) + query := r.URL.Query() + vars:=convertToMap(query) downtime,err := downtimes.FindAll(vars) if err != nil { sendErrorJson(err, w, r) return } - fmt.Println(downtime) sendJsonAction(downtime, "fetch", w, r) } diff --git a/types/downtimes/database.go b/types/downtimes/database.go index 1c400036..e2c609f2 100644 --- a/types/downtimes/database.go +++ b/types/downtimes/database.go @@ -79,9 +79,9 @@ func FindAll(vars map[string]string ) (*[]Downtime, error) { var end time.Time var err error var count int64 - st,ok1 := vars["start"] - en,ok2 := vars["end"] - if ok1 && ok2 && (en > st){ + st,err1 := vars["start"] + en,err2 := vars["end"] + if err1 && err2 && (en > st){ start,err = ConvertToUnixTime(vars["start"]) if err!=nil { return &downtime,err @@ -96,20 +96,20 @@ func FindAll(vars map[string]string ) (*[]Downtime, error) { end = time.Now() } q := db.Where("start BETWEEN ? AND ? ", start, end) - subStatus,ok3 := vars["sub_status"] - if ok3{ + subStatus,err3 := vars["sub_status"] + if err3{ q = q.Where(" sub_status = ?", subStatus) } - service,ok4 := vars["service"] - if ok4{ - q = q.Where(" service = ?", service) + serviceId,err4 := vars["service_id"] + if err4{ + q = q.Where(" service = ?", serviceId) } - ty,ok5 := vars["type"] - if ok5{ + ty,err5 := vars["type"] + if err5{ q = q.Where(" type = ?", ty) } - cnt,ok5 := vars["count"] - if ok5{ + cnt,err5 := vars["count"] + if err5{ count,err = strconv.ParseInt(cnt,10,64) if count > 100 { count = 100