Skip to content

Commit

Permalink
change the getInt() and getFloat() to generic function (megaease#173)
Browse files Browse the repository at this point in the history
* change the getInt() and getFloat() to generic function

* go fmt

* correct the log
  • Loading branch information
haoel committed Jul 21, 2022
1 parent b4d8676 commit e7f7521
Showing 1 changed file with 14 additions and 20 deletions.
34 changes: 14 additions & 20 deletions web/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,28 +61,22 @@ func getStatus(status string) *probe.Status {
return &s
}

func getFloat(f string, _default float64) float64 {
if f == "" {
return _default
}
flt, err := strconv.ParseFloat(f, 64)
if err != nil {
log.Debugf("[Web] Invalid float value: %s", err)
return _default
}
return flt
func toFloat(str string) (float64, error) {
return strconv.ParseFloat(str, 64)
}

func getInt(i string, _default int) int {
if i == "" {
func toInt(str string) (int, error) {
return strconv.Atoi(str)
}
func getNum[T any](str string, _default T, convert func(string) (T, error)) T {
if str == "" {
return _default
}
it, err := strconv.Atoi(i)
n, err := convert(str)
if err != nil {
log.Debugf("[Web] Invalid int value: %s", err)
log.Debugf("[Web] Invalid number value: %s", err)
return _default
}
return it
return n
}

func getFilter(req *http.Request) (*report.SLAFilter, error) {
Expand All @@ -93,10 +87,10 @@ func getFilter(req *http.Request) (*report.SLAFilter, error) {
filter.Endpoint = strings.TrimSpace(req.URL.Query().Get("ep"))
filter.Status = getStatus(req.URL.Query().Get("status"))
filter.Message = strings.TrimSpace(req.URL.Query().Get("msg"))
filter.SLAGreater = getFloat(req.URL.Query().Get("gte"), 0)
filter.SLALess = getFloat(req.URL.Query().Get("lte"), 100)
filter.PageNum = getInt(req.URL.Query().Get("pg"), 1)
filter.PageSize = getInt(req.URL.Query().Get("sz"), global.DefaultPageSize)
filter.SLAGreater = getNum(req.URL.Query().Get("gte"), 0, toFloat)
filter.SLALess = getNum(req.URL.Query().Get("lte"), 100, toFloat)
filter.PageNum = getNum(req.URL.Query().Get("pg"), 1, toInt)
filter.PageSize = getNum(req.URL.Query().Get("sz"), global.DefaultPageSize, toInt)

if err := filter.Check(); err != nil {
log.Errorf(err.Error())
Expand Down

0 comments on commit e7f7521

Please sign in to comment.