utilize native merging for map and struct without json
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
		
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ module github.com/unistack-org/micro-server-http/v3 | |||||||
| go 1.13 | go 1.13 | ||||||
|  |  | ||||||
| require ( | 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 | 	golang.org/x/net v0.0.0-20201224014010-6772e930b67b | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								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.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
| github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= | ||||||
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | 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.8 h1:M1qgOz+qgSf/coFeIqDKa7Xc+b3s7du1Yin+i10o3aw= | ||||||
| github.com/unistack-org/micro/v3 v3.2.7/go.mod h1:J8XxJj4Pqa3Ee0a4biRRtut7UwTlfBq8QRe+s4PKGS0= | 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-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-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= | ||||||
|   | |||||||
| @@ -12,7 +12,6 @@ import ( | |||||||
| 	"github.com/unistack-org/micro/v3/metadata" | 	"github.com/unistack-org/micro/v3/metadata" | ||||||
| 	"github.com/unistack-org/micro/v3/register" | 	"github.com/unistack-org/micro/v3/register" | ||||||
| 	"github.com/unistack-org/micro/v3/server" | 	"github.com/unistack-org/micro/v3/server" | ||||||
| 	"github.com/unistack-org/micro/v3/util/qson" |  | ||||||
| 	rflutil "github.com/unistack-org/micro/v3/util/reflect" | 	rflutil "github.com/unistack-org/micro/v3/util/reflect" | ||||||
| 	rutil "github.com/unistack-org/micro/v3/util/router" | 	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 | 	// get fields from url values | ||||||
| 	if len(r.URL.RawQuery) > 0 { | 	if len(r.URL.RawQuery) > 0 { | ||||||
| 		umd := make(map[string]interface{}) | 		umd, err := rflutil.URLMap(r.URL.RawQuery) | ||||||
| 		err = qson.Unmarshal(&umd, r.URL.RawQuery) |  | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			h.errorHandler(ctx, h, w, r, err, http.StatusBadRequest) | 			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 | 	//function := hldr.rcvr | ||||||
| 	var returnValues []reflect.Value | 	var returnValues []reflect.Value | ||||||
|  |  | ||||||
|  | 	matches = rflutil.FlattenMap(matches) | ||||||
| 	if err = rflutil.MergeMap(argv.Interface(), matches); err != nil { | 	if err = rflutil.MergeMap(argv.Interface(), matches); err != nil { | ||||||
| 		h.errorHandler(ctx, h, w, r, err, http.StatusBadRequest) | 		h.errorHandler(ctx, h, w, r, err, http.StatusBadRequest) | ||||||
| 		return | 		return | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user