# HG changeset patch # User Sascha Wilde # Date 1649244629 -7200 # Node ID 0011f50cf216df31d049ffd42b61892a51455f7b # Parent 826e67e959c932df3ec16b5478c6583a4142b762 Removed no longer used alternative api for surveys/ endpoint. As bottlenecks in the summary for SR imports are now identified by their id and no longer by the (not guarantied to be unique!) name, there is no longer the need to request survey data by the name+date tuple (which isn't reliable anyway). So the workaround was now reversed. diff -r 826e67e959c9 -r 0011f50cf216 pkg/controllers/surveys.go --- a/pkg/controllers/surveys.go Tue Apr 05 13:02:13 2022 +0200 +++ b/pkg/controllers/surveys.go Wed Apr 06 13:30:29 2022 +0200 @@ -19,6 +19,8 @@ "database/sql" "net/http" + "github.com/gorilla/mux" + "gemma.intevation.de/gemma/pkg/models" mw "gemma.intevation.de/gemma/pkg/middleware" @@ -41,43 +43,22 @@ ON s.depth_reference = r.depth_reference AND g.location = r.location AND g.validity = r.validity WHERE b.bottleneck_id = $1` - - listSurveysByNameDateSQL = ` -SELECT DISTINCT - s.bottleneck_id, - s.date_info::text, - s.depth_reference, - COALESCE(g.objname, 'ERROR: MISSING GAUGE') AS gauge_objname, - r.value AS waterlevel_value, - COALESCE(s.surtyp, 'ERROR: MISSING SURVEY TYPE') AS surtype -FROM waterway.bottlenecks AS b - JOIN waterway.sounding_results AS s ON b.bottleneck_id = s.bottleneck_id - LEFT JOIN waterway.gauges AS g - ON b.gauge_location = g.location AND s.date_info::timestamptz <@ g.validity - LEFT JOIN waterway.gauges_reference_water_levels AS r - ON s.depth_reference = r.depth_reference - AND g.location = r.location AND g.validity = r.validity -WHERE b.objnam = $1 and s.date_info = $2` ) func listSurveys(req *http.Request) (jr mw.JSONResult, err error) { - v := req.URL.Query() - bottleneckName := v.Get("name") - date := v.Get("date") - id := v.Get("id") + bottleneckId := mux.Vars(req)["id"] + var rows *sql.Rows - surveys := []*models.Survey{} - if date == "" && bottleneckName == "" && id != "" { - rows, err = mw.JSONConn(req).QueryContext(req.Context(), listSurveysByIdSQL, id) - } else if date != "" && bottleneckName != "" && id == "" { - rows, err = mw.JSONConn(req).QueryContext(req.Context(), listSurveysByNameDateSQL, bottleneckName, date) - } + rows, err = mw.JSONConn(req).QueryContext(req.Context(), listSurveysByIdSQL, bottleneckId) if err != nil { return } defer rows.Close() + + surveys := []*models.Survey{} + // as we do not use the values here, we could simply the code here // to work without an explicit mdels/surverys.go // (like done in controllers/search.go)