modified to r.query

pull/1097/head
Rhythm 2021-12-08 12:16:53 +05:30
parent b0a5c55024
commit de0859ade4
2 changed files with 34 additions and 15 deletions

View File

@ -7,6 +7,7 @@ import (
"github.com/statping/statping/types/services" "github.com/statping/statping/types/services"
"github.com/statping/statping/utils" "github.com/statping/statping/utils"
"net/http" "net/http"
"net/url"
"time" "time"
) )
@ -21,15 +22,33 @@ func findDowntime(r *http.Request) (*downtimes.Downtime, error) {
return downtime, nil 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) { func apiAllDowntimes(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r) query := r.URL.Query()
fmt.Println(vars) vars:=convertToMap(query)
downtime,err := downtimes.FindAll(vars) downtime,err := downtimes.FindAll(vars)
if err != nil { if err != nil {
sendErrorJson(err, w, r) sendErrorJson(err, w, r)
return return
} }
fmt.Println(downtime)
sendJsonAction(downtime, "fetch", w, r) sendJsonAction(downtime, "fetch", w, r)
} }

View File

@ -79,9 +79,9 @@ func FindAll(vars map[string]string ) (*[]Downtime, error) {
var end time.Time var end time.Time
var err error var err error
var count int64 var count int64
st,ok1 := vars["start"] st,err1 := vars["start"]
en,ok2 := vars["end"] en,err2 := vars["end"]
if ok1 && ok2 && (en > st){ if err1 && err2 && (en > st){
start,err = ConvertToUnixTime(vars["start"]) start,err = ConvertToUnixTime(vars["start"])
if err!=nil { if err!=nil {
return &downtime,err return &downtime,err
@ -96,20 +96,20 @@ func FindAll(vars map[string]string ) (*[]Downtime, error) {
end = time.Now() end = time.Now()
} }
q := db.Where("start BETWEEN ? AND ? ", start, end) q := db.Where("start BETWEEN ? AND ? ", start, end)
subStatus,ok3 := vars["sub_status"] subStatus,err3 := vars["sub_status"]
if ok3{ if err3{
q = q.Where(" sub_status = ?", subStatus) q = q.Where(" sub_status = ?", subStatus)
} }
service,ok4 := vars["service"] serviceId,err4 := vars["service_id"]
if ok4{ if err4{
q = q.Where(" service = ?", service) q = q.Where(" service = ?", serviceId)
} }
ty,ok5 := vars["type"] ty,err5 := vars["type"]
if ok5{ if err5{
q = q.Where(" type = ?", ty) q = q.Where(" type = ?", ty)
} }
cnt,ok5 := vars["count"] cnt,err5 := vars["count"]
if ok5{ if err5{
count,err = strconv.ParseInt(cnt,10,64) count,err = strconv.ParseInt(cnt,10,64)
if count > 100 { if count > 100 {
count = 100 count = 100