| Index: milo/appengine/settings/utils.go
|
| diff --git a/milo/appengine/settings/utils.go b/milo/appengine/settings/utils.go
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ffb96516faa12f5e7447d86921f4054bd256864c
|
| --- /dev/null
|
| +++ b/milo/appengine/settings/utils.go
|
| @@ -0,0 +1,42 @@
|
| +// Copyright 2015 The LUCI Authors. All rights reserved.
|
| +// Use of this source code is governed under the Apache License, Version 2.0
|
| +// that can be found in the LICENSE file.
|
| +
|
| +package settings
|
| +
|
| +import (
|
| + "fmt"
|
| + "net/http"
|
| + "strconv"
|
| +
|
| + "github.com/luci/luci-go/milo/common/miloerror"
|
| +)
|
| +
|
| +// GetLimit extracts the "limit", "numbuilds", or "num_builds" http param from
|
| +// the request, or returns "-1" implying no limit was specified.
|
| +func GetLimit(r *http.Request) (int, error) {
|
| + sLimit := r.FormValue("limit")
|
| + if sLimit == "" {
|
| + sLimit = r.FormValue("numbuilds")
|
| + if sLimit == "" {
|
| + sLimit = r.FormValue("num_builds")
|
| + if sLimit == "" {
|
| + return -1, nil
|
| + }
|
| + }
|
| + }
|
| + limit, err := strconv.Atoi(sLimit)
|
| + if err != nil {
|
| + return -1, &miloerror.Error{
|
| + Message: fmt.Sprintf("limit parameter value %q is not a number: %s", sLimit, err),
|
| + Code: http.StatusBadRequest,
|
| + }
|
| + }
|
| + if limit < 0 {
|
| + return -1, &miloerror.Error{
|
| + Message: fmt.Sprintf("limit parameter value %q is less than 0", sLimit),
|
| + Code: http.StatusBadRequest,
|
| + }
|
| + }
|
| + return limit, nil
|
| +}
|
|
|