From 152bb03f1d1948f276035a4d1358ef43877ae595 Mon Sep 17 00:00:00 2001 From: Chuntao Lu Date: Wed, 27 Sep 2017 16:13:15 -0700 Subject: [PATCH] Add query renaming case to bar client --- codegen/test_data/bar.json | 12 +++++++++--- codegen/test_data/clients/bar.gogen | 10 ++++++++-- ...r_bar_method_argwithnestedqueryparams.gogen | 18 ++++++++++++++++++ .../bar_bar_method_argwithqueryheader.gogen | 9 +++++++++ .../example-gateway/build/clients/bar/bar.go | 10 ++++++++-- .../bar_bar_method_argwithnestedqueryparams.go | 18 ++++++++++++++++++ .../bar/bar_bar_method_argwithqueryheader.go | 9 +++++++++ .../example-gateway/idl/clients/bar/bar.thrift | 4 +++- .../bar/bar_arg_with_query_params_test.go | 4 ++-- 9 files changed, 84 insertions(+), 10 deletions(-) diff --git a/codegen/test_data/bar.json b/codegen/test_data/bar.json index 80e86f59f..cff165faf 100755 --- a/codegen/test_data/bar.json +++ b/codegen/test_data/bar.json @@ -179,8 +179,8 @@ "\tanOptStrQuery := *r.AnOptStr", "\tqueryValues.Set(\"anOptStr\", anOptStrQuery)", "}", - "aBoolQuery := strconv.FormatBool(r.ABool)", - "queryValues.Set(\"aBool\", aBoolQuery)", + "aBooleanQuery := strconv.FormatBool(r.ABool)", + "queryValues.Set(\"aBoolean\", aBooleanQuery)", "if r.AnOptBool != nil {", "\tanOptBoolQuery := strconv.FormatBool(*r.AnOptBool)", "\tqueryValues.Set(\"anOptBool\", anOptBoolQuery)", @@ -388,8 +388,14 @@ "IsEndpoint": false, "ParseQueryParamGoStatements": null, "WriteQueryParamGoStatements": [ + "queryValues := \u0026url.Values{}", + "uuidQuery := r.UUID", + "queryValues.Set(\"uuid\", uuidQuery)", "if r.Params != nil {", - "}" + "paramsUserUUIDQuery := r.Params.UserUUID", + "queryValues.Set(\"params.userUUID\", paramsUserUUIDQuery)", + "}", + "fullURL += \"?\" + queryValues.Encode()" ], "ReqHeaderGoStatements": null, "ResHeaderFields": { diff --git a/codegen/test_data/clients/bar.gogen b/codegen/test_data/clients/bar.gogen index 69d52543a..5b10c1820 100644 --- a/codegen/test_data/clients/bar.gogen +++ b/codegen/test_data/clients/bar.gogen @@ -372,8 +372,8 @@ func (c *barClient) ArgWithManyQueryParams( anOptStrQuery := *r.AnOptStr queryValues.Set("anOptStr", anOptStrQuery) } - aBoolQuery := strconv.FormatBool(r.ABool) - queryValues.Set("aBool", aBoolQuery) + aBooleanQuery := strconv.FormatBool(r.ABool) + queryValues.Set("aBoolean", aBooleanQuery) if r.AnOptBool != nil { anOptBoolQuery := strconv.FormatBool(*r.AnOptBool) queryValues.Set("anOptBool", anOptBoolQuery) @@ -542,8 +542,14 @@ func (c *barClient) ArgWithParams( // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithParams" + "/" + string(r.UUID) + "/segment" + "/" + string(r.Params.UserUUID) + queryValues := &url.Values{} + uuidQuery := r.UUID + queryValues.Set("uuid", uuidQuery) if r.Params != nil { + paramsUserUUIDQuery := r.Params.UserUUID + queryValues.Set("params.userUUID", paramsUserUUIDQuery) } + fullURL += "?" + queryValues.Encode() err := req.WriteJSON("GET", fullURL, headers, nil) if err != nil { diff --git a/codegen/test_data/endpoints/bar_bar_method_argwithnestedqueryparams.gogen b/codegen/test_data/endpoints/bar_bar_method_argwithnestedqueryparams.gogen index 8a14edcd3..f85c44655 100755 --- a/codegen/test_data/endpoints/bar_bar_method_argwithnestedqueryparams.gogen +++ b/codegen/test_data/endpoints/bar_bar_method_argwithnestedqueryparams.gogen @@ -108,6 +108,24 @@ func (handler *BarArgWithNestedQueryParamsHandler) HandleRequest( requestBody.Request.UserUUID = ptr.String(requestUserUUIDQuery) } + requestAuthUUIDOk := req.HasQueryValue("request.authUUID") + if requestAuthUUIDOk { + requestAuthUUIDQuery, ok := req.GetQueryValue("request.authUUID") + if !ok { + return + } + requestBody.Request.AuthUUID = ptr.String(requestAuthUUIDQuery) + } + + requestAuthUUID2Ok := req.HasQueryValue("request.authUUID2") + if requestAuthUUID2Ok { + requestAuthUUID2Query, ok := req.GetQueryValue("request.authUUID2") + if !ok { + return + } + requestBody.Request.AuthUUID2 = ptr.String(requestAuthUUID2Query) + } + if req.HasQueryPrefix("opt") || requestBody.Opt != nil { if requestBody.Opt == nil { requestBody.Opt = &endpointsBarBar.QueryParamsOptsStruct{} diff --git a/codegen/test_data/endpoints/bar_bar_method_argwithqueryheader.gogen b/codegen/test_data/endpoints/bar_bar_method_argwithqueryheader.gogen index 1235d35e1..e4b63a08f 100755 --- a/codegen/test_data/endpoints/bar_bar_method_argwithqueryheader.gogen +++ b/codegen/test_data/endpoints/bar_bar_method_argwithqueryheader.gogen @@ -79,6 +79,15 @@ func (handler *BarArgWithQueryHeaderHandler) HandleRequest( requestBody.UserUUID = ptr.String(xUUIDValue) } + userUUIDOk := req.HasQueryValue("userUUID") + if userUUIDOk { + userUUIDQuery, ok := req.GetQueryValue("userUUID") + if !ok { + return + } + requestBody.UserUUID = ptr.String(userUUIDQuery) + } + workflow := ArgWithQueryHeaderEndpoint{ Clients: handler.Clients, Logger: req.Logger, diff --git a/examples/example-gateway/build/clients/bar/bar.go b/examples/example-gateway/build/clients/bar/bar.go index 69d52543a..5b10c1820 100644 --- a/examples/example-gateway/build/clients/bar/bar.go +++ b/examples/example-gateway/build/clients/bar/bar.go @@ -372,8 +372,8 @@ func (c *barClient) ArgWithManyQueryParams( anOptStrQuery := *r.AnOptStr queryValues.Set("anOptStr", anOptStrQuery) } - aBoolQuery := strconv.FormatBool(r.ABool) - queryValues.Set("aBool", aBoolQuery) + aBooleanQuery := strconv.FormatBool(r.ABool) + queryValues.Set("aBoolean", aBooleanQuery) if r.AnOptBool != nil { anOptBoolQuery := strconv.FormatBool(*r.AnOptBool) queryValues.Set("anOptBool", anOptBoolQuery) @@ -542,8 +542,14 @@ func (c *barClient) ArgWithParams( // Generate full URL. fullURL := c.httpClient.BaseURL + "/bar" + "/argWithParams" + "/" + string(r.UUID) + "/segment" + "/" + string(r.Params.UserUUID) + queryValues := &url.Values{} + uuidQuery := r.UUID + queryValues.Set("uuid", uuidQuery) if r.Params != nil { + paramsUserUUIDQuery := r.Params.UserUUID + queryValues.Set("params.userUUID", paramsUserUUIDQuery) } + fullURL += "?" + queryValues.Encode() err := req.WriteJSON("GET", fullURL, headers, nil) if err != nil { diff --git a/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithnestedqueryparams.go b/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithnestedqueryparams.go index 1dc789d57..f7904156d 100644 --- a/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithnestedqueryparams.go +++ b/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithnestedqueryparams.go @@ -108,6 +108,24 @@ func (handler *BarArgWithNestedQueryParamsHandler) HandleRequest( requestBody.Request.UserUUID = ptr.String(requestUserUUIDQuery) } + requestAuthUUIDOk := req.HasQueryValue("request.authUUID") + if requestAuthUUIDOk { + requestAuthUUIDQuery, ok := req.GetQueryValue("request.authUUID") + if !ok { + return + } + requestBody.Request.AuthUUID = ptr.String(requestAuthUUIDQuery) + } + + requestAuthUUID2Ok := req.HasQueryValue("request.authUUID2") + if requestAuthUUID2Ok { + requestAuthUUID2Query, ok := req.GetQueryValue("request.authUUID2") + if !ok { + return + } + requestBody.Request.AuthUUID2 = ptr.String(requestAuthUUID2Query) + } + if req.HasQueryPrefix("opt") || requestBody.Opt != nil { if requestBody.Opt == nil { requestBody.Opt = &endpointsBarBar.QueryParamsOptsStruct{} diff --git a/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithqueryheader.go b/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithqueryheader.go index 79f1a0e38..e80088e8c 100644 --- a/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithqueryheader.go +++ b/examples/example-gateway/build/endpoints/bar/bar_bar_method_argwithqueryheader.go @@ -79,6 +79,15 @@ func (handler *BarArgWithQueryHeaderHandler) HandleRequest( requestBody.UserUUID = ptr.String(xUUIDValue) } + userUUIDOk := req.HasQueryValue("userUUID") + if userUUIDOk { + userUUIDQuery, ok := req.GetQueryValue("userUUID") + if !ok { + return + } + requestBody.UserUUID = ptr.String(userUUIDQuery) + } + workflow := ArgWithQueryHeaderEndpoint{ Clients: handler.Clients, Logger: req.Logger, diff --git a/examples/example-gateway/idl/clients/bar/bar.thrift b/examples/example-gateway/idl/clients/bar/bar.thrift index f0916d058..542d4b189 100644 --- a/examples/example-gateway/idl/clients/bar/bar.thrift +++ b/examples/example-gateway/idl/clients/bar/bar.thrift @@ -167,7 +167,9 @@ service Bar { BarResponse argWithManyQueryParams( 1: required string aStr 2: optional string anOptStr - 3: required bool aBool + 3: required bool aBool ( + zanzibar.http.ref = "query.aBoolean" + ) 4: optional bool anOptBool 5: required i8 aInt8 6: optional i8 anOptInt8 diff --git a/test/endpoints/bar/bar_arg_with_query_params_test.go b/test/endpoints/bar/bar_arg_with_query_params_test.go index 5d21aa550..e50c241ad 100644 --- a/test/endpoints/bar/bar_arg_with_query_params_test.go +++ b/test/endpoints/bar/bar_arg_with_query_params_test.go @@ -161,7 +161,7 @@ func TestBarWithManyQueryParamsCall(t *testing.T) { "GET", "/bar/argWithManyQueryParams", func(w http.ResponseWriter, r *http.Request) { assert.Equal(t, - "aBool=true&aFloat64=5.1&aInt16=48&aInt32=12&"+ + "aBoolean=true&aFloat64=5.1&aInt16=48&aInt32=12&"+ "aInt64=4&aInt8=24&aStr=foo&anOptBool=false&"+ "anOptFloat64=-0.4&anOptInt16=-100&anOptInt32=-10&"+ "anOptInt64=-1&anOptInt8=-50&anOptStr=bar", @@ -696,7 +696,7 @@ func TestBarWithManyQueryParamsOptionalCall(t *testing.T) { "GET", "/bar/argWithManyQueryParams", func(w http.ResponseWriter, r *http.Request) { assert.Equal(t, - "aBool=true&aFloat64=5.1&aInt16=48&aInt32=12&"+ + "aBoolean=true&aFloat64=5.1&aInt16=48&aInt32=12&"+ "aInt64=4&aInt8=24&aStr=foo&anOptBool=false&"+ "anOptInt8=-50&anOptStr=bar", r.URL.RawQuery,