From 1e0aca4d8f9df83b88d46e2c4cb6411da29bb348 Mon Sep 17 00:00:00 2001 From: AsabuHere Date: Mon, 6 Nov 2023 16:46:56 +0530 Subject: [PATCH 1/2] Adding support for query params for all http operations --- .../com/twilio/oai/TwilioGoGenerator.java | 3 ++ src/main/resources/twilio-go/api.mustache | 18 +++++-- .../twilio-go/partial_serialization.mustache | 51 ++++++++++++++++--- 3 files changed, 62 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/twilio/oai/TwilioGoGenerator.java b/src/main/java/com/twilio/oai/TwilioGoGenerator.java index 1e7a60ad3..210a2df60 100644 --- a/src/main/java/com/twilio/oai/TwilioGoGenerator.java +++ b/src/main/java/com/twilio/oai/TwilioGoGenerator.java @@ -171,6 +171,9 @@ public void postProcessParameter(final CodegenParameter parameter) { if(parameter.isBodyParam){ parameter.vendorExtensions.put("x-is-body-param",true); } + if(parameter.isQueryParam){ + parameter.vendorExtensions.put("x-is-query-param",true); + } if (parameter.isFreeFormObject || parameter.isAnyType) { parameter.vendorExtensions.put("x-marshal", true); } diff --git a/src/main/resources/twilio-go/api.mustache b/src/main/resources/twilio-go/api.mustache index decd84cdf..7963b82d4 100644 --- a/src/main/resources/twilio-go/api.mustache +++ b/src/main/resources/twilio-go/api.mustache @@ -47,8 +47,20 @@ func (c *ApiService) {{{nickname}}}({{#allParams}}{{#required}}{{paramName}} {{{ } {{/headerParams}} {{/hasHeaderParams}} +{{#vendorExtensions.x-is-create-operation}} +{{#vendorExtensions.x-is-json-type}} + resp, err := c.requestHandler.{{httpMethod}}(c.baseURL+path, data, headers, queryParams, body...) +{{/vendorExtensions.x-is-json-type}} +{{^vendorExtensions.x-is-json-type}} + resp, err := c.requestHandler.{{httpMethod}}(c.baseURL+path, data, headers, queryParams) +{{/vendorExtensions.x-is-json-type}} +{{/vendorExtensions.x-is-create-operation}} +{{^vendorExtensions.x-is-create-operation}} +{{^vendorExtensions.x-is-json-type}} + resp, err := c.requestHandler.{{httpMethod}}(c.baseURL+path, data, headers, queryParams) +{{/vendorExtensions.x-is-json-type}} +{{/vendorExtensions.x-is-create-operation}} - resp, err := c.requestHandler.{{httpMethod}}(c.baseURL+path, data, headers) {{#returnType}} if err != nil { return nil, err @@ -87,7 +99,7 @@ func (c *ApiService) Page{{{vendorExtensions.x-domain-name}}}({{#allParams}}{{#r data.Set("Page", pageNumber) } - resp, err := c.requestHandler.Get(c.baseURL+path, data, headers) + resp, err := c.requestHandler.Get(c.baseURL+path, data, headers, queryParams) if err != nil { return nil, err } @@ -175,7 +187,7 @@ func (c *ApiService) getNext{{{returnContainer}}}(nextPageUrl string) (interface if nextPageUrl == "" { return nil, nil } - resp, err := c.requestHandler.Get(nextPageUrl, nil, nil) + resp, err := c.requestHandler.Get(nextPageUrl, nil, nil, queryParams) if err != nil { return nil, err } diff --git a/src/main/resources/twilio-go/partial_serialization.mustache b/src/main/resources/twilio-go/partial_serialization.mustache index f3055b8ba..3f9607391 100644 --- a/src/main/resources/twilio-go/partial_serialization.mustache +++ b/src/main/resources/twilio-go/partial_serialization.mustache @@ -12,6 +12,7 @@ if params != nil && params.PathAccountSid != nil { {{/pathParams}} data := url.Values{} + queryParams := url.Values{} {{^vendorExtensions.x-is-json-type}} headers := make(map[string]interface{}) @@ -24,13 +25,13 @@ if params != nil && params.PathAccountSid != nil { {{#hasOptionalParams}} {{#optionalParams}} {{#vendorExtensions.x-is-body-param}} + body := []byte{} if params != nil && params.{{paramName}} != nil { - v, err := json.Marshal(*params.{{paramName}}) + b, err := json.Marshal(*params.{{paramName}}) if err != nil { return nil, err } - urlEncodedData := url.QueryEscape(string(v)) - data.Set("{{baseName}}", urlEncodedData) + body = b } {{/vendorExtensions.x-is-body-param}} {{^vendorExtensions.x-is-body-param}} @@ -46,11 +47,20 @@ if params != nil && params.PathAccountSid != nil { if err != nil { return nil, err } - +{{^vendorExtensions.x-is-query-param}} data.Add("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Add("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} {{/items.vendorExtensions.x-marshal}} {{^items.vendorExtensions.x-marshal}} +{{^vendorExtensions.x-is-query-param}} data.Add("{{{baseName}}}", item) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Add("{{{baseName}}}", item) +{{/vendorExtensions.x-is-query-param}} {{/items.vendorExtensions.x-marshal}} } {{/isArray}} @@ -61,11 +71,20 @@ if params != nil && params.PathAccountSid != nil { if err != nil { return nil, err } - +{{^vendorExtensions.x-is-query-param}} data.Set("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Set("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} {{/vendorExtensions.x-marshal}} {{^vendorExtensions.x-marshal}} +{{^vendorExtensions.x-is-query-param}} data.Set("{{{baseName}}}", {{^isString}}fmt.Sprint({{/isString}}{{#isDateTime}}({{/isDateTime}}*params.{{paramName}}{{^isString}}{{#isDateTime}}).Format(time.RFC3339){{/isDateTime}}){{/isString}}) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Set("{{{baseName}}}", {{^isString}}fmt.Sprint({{/isString}}{{#isDateTime}}({{/isDateTime}}*params.{{paramName}}{{^isString}}{{#isDateTime}}).Format(time.RFC3339){{/isDateTime}}){{/isString}}) +{{/vendorExtensions.x-is-query-param}} {{/vendorExtensions.x-marshal}} {{/isArray}} } @@ -91,11 +110,20 @@ if params != nil && params.PathAccountSid != nil { if err != nil { return nil, err } - +{{^vendorExtensions.x-is-query-param}} data.Add("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Add("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} {{/items.vendorExtensions.x-marshal}} {{^items.vendorExtensions.x-marshal}} +{{^vendorExtensions.x-is-query-param}} data.Add("{{{baseName}}}", item) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Add("{{{baseName}}}", item) +{{/vendorExtensions.x-is-query-param}} {{/items.vendorExtensions.x-marshal}} } {{/isArray}} @@ -106,11 +134,20 @@ if params != nil && params.PathAccountSid != nil { if err != nil { return nil, err } - +{{^vendorExtensions.x-is-query-param}} data.Set("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Set("{{{baseName}}}", string(v)) +{{/vendorExtensions.x-is-query-param}} {{/vendorExtensions.x-marshal}} {{^vendorExtensions.x-marshal}} +{{^vendorExtensions.x-is-query-param}} data.Set("{{{baseName}}}", {{^isString}}fmt.Sprint({{/isString}}{{#isDateTime}}({{/isDateTime}}*params.{{paramName}}{{^isString}}{{#isDateTime}}).Format(time.RFC3339){{/isDateTime}}){{/isString}}) +{{/vendorExtensions.x-is-query-param}} +{{#vendorExtensions.x-is-query-param}} + queryParams.Set("{{{baseName}}}", {{^isString}}fmt.Sprint({{/isString}}{{#isDateTime}}({{/isDateTime}}*params.{{paramName}}{{^isString}}{{#isDateTime}}).Format(time.RFC3339){{/isDateTime}}){{/isString}}) +{{/vendorExtensions.x-is-query-param}} {{/vendorExtensions.x-marshal}} {{/isArray}} } From 56f385ae04e18fc796c45f7d26f489ced626295b Mon Sep 17 00:00:00 2001 From: AsabuHere Date: Fri, 5 Jan 2024 11:20:58 +0530 Subject: [PATCH 2/2] mustache changes --- src/main/resources/twilio-go/api.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/twilio-go/api.mustache b/src/main/resources/twilio-go/api.mustache index 7963b82d4..5f7bbfebc 100644 --- a/src/main/resources/twilio-go/api.mustache +++ b/src/main/resources/twilio-go/api.mustache @@ -187,7 +187,7 @@ func (c *ApiService) getNext{{{returnContainer}}}(nextPageUrl string) (interface if nextPageUrl == "" { return nil, nil } - resp, err := c.requestHandler.Get(nextPageUrl, nil, nil, queryParams) + resp, err := c.requestHandler.Get(nextPageUrl, nil, nil, nil) if err != nil { return nil, err }