diff pkg/controllers/bottlenecks.go @ 3405:2b5c22f6bb1f

available fairway depth: Implemented backend for sections and stretches.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 23 May 2019 12:53:19 +0200
parents cf0b5274698a
children 5e284f39a081
line wrap: on
line diff
--- a/pkg/controllers/bottlenecks.go	Thu May 23 12:48:55 2019 +0200
+++ b/pkg/controllers/bottlenecks.go	Thu May 23 12:53:19 2019 +0200
@@ -565,10 +565,26 @@
 	return
 }
 
+func intervalMode(mode string) int {
+	switch strings.ToLower(mode) {
+	case "monthly":
+		return 0
+	case "quarterly":
+		return 1
+	case "yearly":
+		return 2
+	default:
+		return 0
+	}
+}
+
 func bottleneckAvailableFairwayDepth(rw http.ResponseWriter, req *http.Request) {
 
+	mode := intervalMode(req.FormValue("mode"))
+	var from, to time.Time
+	var los int
+
 	bn := mux.Vars(req)["objnam"]
-
 	if bn == "" {
 		http.Error(
 			rw, "Missing objnam of bottleneck",
@@ -576,25 +592,6 @@
 		return
 	}
 
-	var mode int
-	if m := req.FormValue("mode"); m != "" {
-		switch strings.ToLower(m) {
-		case "monthly":
-			mode = 0
-		case "quarterly":
-			mode = 1
-		case "yearly":
-			mode = 2
-		default:
-			http.Error(
-				rw, fmt.Sprintf("Unknown 'mode' value %s.", m),
-				http.StatusBadRequest)
-			return
-		}
-	}
-
-	var from, to time.Time
-
 	if f := req.FormValue("from"); f != "" {
 		var err error
 		if from, err = time.Parse(common.TimeFormat, f); err != nil {
@@ -625,9 +622,6 @@
 		to, from = from, to
 	}
 
-	log.Printf("info: time interval: (%v - %v)\n", from, to)
-
-	var los int
 	if l := req.FormValue("los"); l != "" {
 		var err error
 		if los, err = strconv.Atoi(l); err != nil {
@@ -660,6 +654,8 @@
 
 	access := limitingFactor(limiting)
 
+	log.Printf("info: time interval: (%v - %v)\n", from, to)
+
 	// load the measurements
 	ms, err := loadDepthValues(ctx, conn, bn, los, from, to)
 	if err != nil {