changeset 749:802ecaae8410

Search back end: simply return emty array for empty result sets.
author Sascha Wilde <wilde@intevation.de>
date Mon, 24 Sep 2018 16:28:01 +0200
parents 3cb012d4d9ef
children cf37bf6c28c6
files pkg/controllers/search.go
diffstat 1 files changed, 4 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/search.go	Mon Sep 24 16:19:31 2018 +0200
+++ b/pkg/controllers/search.go	Mon Sep 24 16:28:01 2018 +0200
@@ -2,7 +2,6 @@
 
 import (
 	"database/sql"
-	"fmt"
 	"net/http"
 	"regexp"
 	"strconv"
@@ -12,12 +11,12 @@
 )
 
 const (
-	searchHectometreSQL = `SELECT json_agg(r)
+	searchHectometreSQL = `SELECT COALESCE(json_agg(r),'[]')
 FROM (SELECT location_code::text AS name,
              ST_AsGeoJSON(geom)::json AS geom
       FROM waterway.distance_marks
       WHERE (location_code).hectometre = $1) r`
-	searchBottleneckSQL = `SELECT json_agg(r)
+	searchBottleneckSQL = `SELECT COALESCE(json_agg(r),'[]')
 FROM (SELECT objnam AS name,
              ST_AsGeoJSON(ST_Centroid(area))::json AS geom
       FROM waterway.bottlenecks
@@ -68,15 +67,7 @@
 			hectometre,
 		).Scan(&result)
 
-		switch {
-		case err == sql.ErrNoRows:
-			err = JSONError{
-				Code: http.StatusNotFound,
-				Message: fmt.Sprintf("Cannot find river hectometre %d.",
-					hectometre),
-			}
-			return
-		case err != nil:
+		if err != nil {
 			return
 		}
 
@@ -90,20 +81,11 @@
 			"%"+s.SearchString+"%",
 		).Scan(&result)
 
-		switch {
-		case err == sql.ErrNoRows:
-			err = JSONError{
-				Code: http.StatusNotFound,
-				Message: fmt.Sprintf("No Results for %s.",
-					s.SearchString),
-			}
-			return
-		case err != nil:
+		if err != nil {
 			return
 		}
 
 		jr.Result = strings.NewReader(result)
-
 	}
 
 	return