From 6565336c1a25f6374ef97a9781ae44d82036c4a1 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Sat, 6 Feb 2021 18:16:29 +0300 Subject: [PATCH] utilize native merging for map and struct without json Signed-off-by: Vasiliy Tolstov --- go.mod | 2 +- go.sum | 4 ++-- handler.go | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 8743151..f9a45d2 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/unistack-org/micro-server-http/v3 go 1.13 require ( - github.com/unistack-org/micro/v3 v3.2.7 + github.com/unistack-org/micro/v3 v3.2.8 golang.org/x/net v0.0.0-20201224014010-6772e930b67b ) diff --git a/go.sum b/go.sum index 58e535c..5853bc4 100644 --- a/go.sum +++ b/go.sum @@ -57,8 +57,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/unistack-org/micro/v3 v3.2.7 h1:+vLVmoQeE0z0cmIAKXSQXbxC4pxXpmkzckh9B9shogo= -github.com/unistack-org/micro/v3 v3.2.7/go.mod h1:J8XxJj4Pqa3Ee0a4biRRtut7UwTlfBq8QRe+s4PKGS0= +github.com/unistack-org/micro/v3 v3.2.8 h1:M1qgOz+qgSf/coFeIqDKa7Xc+b3s7du1Yin+i10o3aw= +github.com/unistack-org/micro/v3 v3.2.8/go.mod h1:J8XxJj4Pqa3Ee0a4biRRtut7UwTlfBq8QRe+s4PKGS0= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= diff --git a/handler.go b/handler.go index 007dd0a..7e4d5c0 100644 --- a/handler.go +++ b/handler.go @@ -12,7 +12,6 @@ import ( "github.com/unistack-org/micro/v3/metadata" "github.com/unistack-org/micro/v3/register" "github.com/unistack-org/micro/v3/server" - "github.com/unistack-org/micro/v3/util/qson" rflutil "github.com/unistack-org/micro/v3/util/reflect" rutil "github.com/unistack-org/micro/v3/util/router" ) @@ -126,8 +125,7 @@ func (h *httpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { // get fields from url values if len(r.URL.RawQuery) > 0 { - umd := make(map[string]interface{}) - err = qson.Unmarshal(&umd, r.URL.RawQuery) + umd, err := rflutil.URLMap(r.URL.RawQuery) if err != nil { h.errorHandler(ctx, h, w, r, err, http.StatusBadRequest) } @@ -158,6 +156,7 @@ func (h *httpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { //function := hldr.rcvr var returnValues []reflect.Value + matches = rflutil.FlattenMap(matches) if err = rflutil.MergeMap(argv.Interface(), matches); err != nil { h.errorHandler(ctx, h, w, r, err, http.StatusBadRequest) return