changeset 350:1ea90a22bd15

Better replacements for WFS proxy.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 06 Aug 2018 18:13:58 +0200
parents 56f6c5ab0f3d
children b89138a25f9e
files controllers/externalwfs.go controllers/routes.go
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/controllers/externalwfs.go	Mon Aug 06 17:50:45 2018 +0200
+++ b/controllers/externalwfs.go	Mon Aug 06 18:13:58 2018 +0200
@@ -32,7 +32,11 @@
 	if external == nil || len(external) == 0 {
 		abort("No external WFS proxy config found\n")
 	}
-	wfs := mux.Vars(req)["wfs"]
+	vars := mux.Vars(req)
+	wfs := vars["wfs"]
+	rest := vars["rest"]
+
+	log.Printf("rest: %s\n", rest)
 
 	alias, found := external[wfs]
 	if !found {
@@ -54,7 +58,7 @@
 	}
 
 	log.Printf("%v\n", prefix)
-	nURL := prefix + "?" + req.URL.RawQuery
+	nURL := prefix + "/" + rest + "?" + req.URL.RawQuery
 	log.Printf("%v\n", nURL)
 
 	u, err := url.Parse(nURL)
--- a/controllers/routes.go	Mon Aug 06 17:50:45 2018 +0200
+++ b/controllers/routes.go	Mon Aug 06 18:13:58 2018 +0200
@@ -58,7 +58,7 @@
 		ModifyResponse: externalWFSModifyResponse,
 	}
 
-	api.Handle("/externalwfs/{wfs}", externalWFSProxy).
+	api.Handle("/externalwfs/{wfs}/{rest:.*}", externalWFSProxy).
 		Methods(
 			http.MethodGet, http.MethodPost,
 			http.MethodPut, http.MethodDelete)