Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1030)

Unified Diff: milo/appengine/settings/utils.go

Issue 2748073006: Milo Refactor: Remove theme support (Closed)
Patch Set: Fix tests Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
+}

Powered by Google App Engine
This is Rietveld 408576698