[go] Serialize multipart array of complex objects as JSON (#2965)

* Serialize multipart array of complex objects as JSON

* Update sample client

* Update sample client
This commit is contained in:
Thiago Arrais 2019-06-28 12:14:13 -03:00 committed by William Cheng
parent 51014839fd
commit e46bd7dd18
9 changed files with 67 additions and 4 deletions

View File

@ -203,9 +203,20 @@ func (a *{{{classname}}}Service) {{{nickname}}}(ctx context.Context{{#hasParams}
localVarFormParams.Add("{{baseName}}", parameterToString({{paramName}}, "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}"))
{{/required}}
{{^required}}
{{#isModel}}
if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
paramJson, err := parameterToJson(localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value())
if err != nil {
return {{#returnType}}localVarReturnValue, {{/returnType}}nil, err
}
localVarFormParams.Add("{{baseName}}", paramJson)
}
{{/isModel}}
{{^isModel}}
if localVarOptionals != nil && localVarOptionals.{{vendorExtensions.x-exportParamName}}.IsSet() {
localVarFormParams.Add("{{baseName}}", parameterToString(localVarOptionals.{{vendorExtensions.x-exportParamName}}.Value(), "{{#collectionFormat}}{{collectionFormat}}{{/collectionFormat}}"))
}
{{/isModel}}
{{/required}}
{{/isFile}}
{{/formParams}}

View File

@ -149,6 +149,16 @@ func parameterToString(obj interface{}, collectionFormat string) string {
return fmt.Sprintf("%v", obj)
}
// helper for converting interface{} parameters to json strings
func parameterToJson(obj interface{}) (string, error) {
jsonBuf, err := json.Marshal(obj)
if err != nil {
return "", err
}
return string(jsonBuf), err
}
// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
return c.cfg.HTTPClient.Do(request)

View File

@ -833,7 +833,11 @@ func (a *FakeApiService) TestEndpointParameters(ctx context.Context, number floa
localVarFormParams.Add("date", parameterToString(localVarOptionals.Date.Value(), ""))
}
if localVarOptionals != nil && localVarOptionals.DateTime.IsSet() {
localVarFormParams.Add("dateTime", parameterToString(localVarOptionals.DateTime.Value(), ""))
paramJson, err := parameterToJson(localVarOptionals.DateTime.Value())
if err != nil {
return nil, err
}
localVarFormParams.Add("dateTime", paramJson)
}
if localVarOptionals != nil && localVarOptionals.Password.IsSet() {
localVarFormParams.Add("password", parameterToString(localVarOptionals.Password.Value(), ""))

View File

@ -161,6 +161,16 @@ func parameterToString(obj interface{}, collectionFormat string) string {
return fmt.Sprintf("%v", obj)
}
// helper for converting interface{} parameters to json strings
func parameterToJson(obj interface{}) (string, error) {
jsonBuf, err := json.Marshal(obj)
if err != nil {
return "", err
}
return string(jsonBuf), err
}
// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
return c.cfg.HTTPClient.Do(request)

View File

@ -832,7 +832,11 @@ func (a *FakeApiService) TestEndpointParameters(ctx context.Context, number floa
localVarFormParams.Add("date", parameterToString(localVarOptionals.Date.Value(), ""))
}
if localVarOptionals != nil && localVarOptionals.DateTime.IsSet() {
localVarFormParams.Add("dateTime", parameterToString(localVarOptionals.DateTime.Value(), ""))
paramJson, err := parameterToJson(localVarOptionals.DateTime.Value())
if err != nil {
return nil, err
}
localVarFormParams.Add("dateTime", paramJson)
}
if localVarOptionals != nil && localVarOptionals.Password.IsSet() {
localVarFormParams.Add("password", parameterToString(localVarOptionals.Password.Value(), ""))

View File

@ -160,6 +160,16 @@ func parameterToString(obj interface{}, collectionFormat string) string {
return fmt.Sprintf("%v", obj)
}
// helper for converting interface{} parameters to json strings
func parameterToJson(obj interface{}) (string, error) {
jsonBuf, err := json.Marshal(obj)
if err != nil {
return "", err
}
return string(jsonBuf), err
}
// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
return c.cfg.HTTPClient.Do(request)

View File

@ -1 +1 @@
4.0.2-SNAPSHOT
4.0.3-SNAPSHOT

View File

@ -849,7 +849,11 @@ func (a *FakeApiService) TestEndpointParameters(ctx context.Context, number floa
localVarFormParams.Add("date", parameterToString(localVarOptionals.Date.Value(), ""))
}
if localVarOptionals != nil && localVarOptionals.DateTime.IsSet() {
localVarFormParams.Add("dateTime", parameterToString(localVarOptionals.DateTime.Value(), ""))
paramJson, err := parameterToJson(localVarOptionals.DateTime.Value())
if err != nil {
return nil, err
}
localVarFormParams.Add("dateTime", paramJson)
}
if localVarOptionals != nil && localVarOptionals.Password.IsSet() {
localVarFormParams.Add("password", parameterToString(localVarOptionals.Password.Value(), ""))

View File

@ -163,6 +163,16 @@ func parameterToString(obj interface{}, collectionFormat string) string {
return fmt.Sprintf("%v", obj)
}
// helper for converting interface{} parameters to json strings
func parameterToJson(obj interface{}) (string, error) {
jsonBuf, err := json.Marshal(obj)
if err != nil {
return "", err
}
return string(jsonBuf), err
}
// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
return c.cfg.HTTPClient.Do(request)