[Go] Fix deepObject serialization that are anyOf (#19090)

* [Go] Fix deepObject serialization that are anyOf

Updates the go client generator to have the generated struct for anyOf types conform to `MappedNullable` interface.
Fixes query params serialization for deepObjects that are of `anyOf` type.

Implements the suggestion in https://github.com/OpenAPITools/openapi-generator/issues/19085

* check parameter style for deepObject serialization

* generate samples for go-echo-external-refs-test

* move test back to http port

* restrict to anyof models with discriminator

* update test

* add some tests

added some tests to `modules/openapi-generator/src/test/resources/3_0/go/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml` and regenerated the samples
This commit is contained in:
Tanmay Mohapatra 2024-08-04 15:13:09 +05:30 committed by GitHub
parent e0f12e9bf4
commit 4c163fe4b0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
45 changed files with 1500 additions and 233 deletions

View File

@ -189,15 +189,15 @@ func (a *{{{classname}}}Service) {{nickname}}Execute(r {{#structPrefix}}{{&class
if reflect.TypeOf(t).Kind() == reflect.Slice {
s := reflect.ValueOf(t)
for i := 0; i < s.Len(); i++ {
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", s.Index(i).Interface(), "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", s.Index(i).Interface(), "{{style}}", "{{collectionFormat}}")
}
} else {
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", t, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", t, "{{style}}", "{{collectionFormat}}")
}
}
{{/isCollectionFormatMulti}}
{{^isCollectionFormatMulti}}
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", r.{{paramName}}, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", r.{{paramName}}, "{{style}}", "{{collectionFormat}}")
{{/isCollectionFormatMulti}}
{{/required}}
{{^required}}
@ -207,14 +207,14 @@ func (a *{{{classname}}}Service) {{nickname}}Execute(r {{#structPrefix}}{{&class
if reflect.TypeOf(t).Kind() == reflect.Slice {
s := reflect.ValueOf(t)
for i := 0; i < s.Len(); i++ {
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", s.Index(i).Interface(), "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", s.Index(i).Interface(), "{{style}}", "{{collectionFormat}}")
}
} else {
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", t, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", t, "{{style}}", "{{collectionFormat}}")
}
{{/isCollectionFormatMulti}}
{{^isCollectionFormatMulti}}
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", r.{{paramName}}, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarQueryParams, "{{{baseName}}}", r.{{paramName}}, "{{style}}", "{{collectionFormat}}")
{{/isCollectionFormatMulti}}
{{#defaultValue}}} else {
var defaultValue {{{dataType}}} = {{{.}}}
@ -245,11 +245,11 @@ func (a *{{{classname}}}Service) {{nickname}}Execute(r {{#structPrefix}}{{&class
}
{{#headerParams}}
{{#required}}
parameterAddToHeaderOrQuery(localVarHeaderParams, "{{{baseName}}}", r.{{paramName}}, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarHeaderParams, "{{{baseName}}}", r.{{paramName}}, "{{style}}", "{{collectionFormat}}")
{{/required}}
{{^required}}
if r.{{paramName}} != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "{{{baseName}}}", r.{{paramName}}, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarHeaderParams, "{{{baseName}}}", r.{{paramName}}, "{{style}}", "{{collectionFormat}}")
}
{{/required}}
{{/headerParams}}
@ -295,7 +295,7 @@ func (a *{{{classname}}}Service) {{nickname}}Execute(r {{#structPrefix}}{{&class
{{/isFile}}
{{^isFile}}
{{#required}}
parameterAddToHeaderOrQuery(localVarFormParams, "{{{baseName}}}", r.{{paramName}}, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarFormParams, "{{{baseName}}}", r.{{paramName}}, "{{style}}", "{{collectionFormat}}")
{{/required}}
{{^required}}
{{#isModel}}
@ -309,7 +309,7 @@ func (a *{{{classname}}}Service) {{nickname}}Execute(r {{#structPrefix}}{{&class
{{/isModel}}
{{^isModel}}
if r.{{paramName}} != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "{{{baseName}}}", r.{{paramName}}, "{{collectionFormat}}")
parameterAddToHeaderOrQuery(localVarFormParams, "{{{baseName}}}", r.{{paramName}}, "{{style}}", "{{collectionFormat}}")
}
{{/isModel}}
{{/required}}

View File

@ -152,7 +152,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -168,11 +168,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -184,7 +184,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -196,14 +200,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -1,3 +1,8 @@
{{#discriminator}}
// checks if the {{classname}} type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &{{classname}}{}
{{/discriminator}}
// {{classname}} {{{description}}}{{^description}}struct for {{{classname}}}{{/description}}
type {{classname}} struct {
{{#anyOf}}
@ -73,4 +78,16 @@ func (src *{{classname}}) MarshalJSON() ([]byte, error) {
return nil, nil // no data in anyOf schemas
}
{{#discriminator}}
func (src {{classname}}) ToMap() (map[string]interface{}, error) {
{{#anyOf}}
if src.{{#lambda.type-to-name}}{{{.}}}{{/lambda.type-to-name}} != nil {
return src.{{#lambda.type-to-name}}{{{.}}}{{/lambda.type-to-name}}.ToMap()
}
{{/anyOf}}
return nil, nil // no data in anyOf schemas
}
{{/discriminator}}
{{>nullable_model}}

View File

@ -1233,6 +1233,22 @@ paths:
responses:
'200':
description: OK
/fake/deep_object_anyof_test:
get:
tags:
- fake
operationId: test_query_deep_object_anyof
parameters:
- name: filter
in: query
required: false
style: deepObject
schema:
$ref: '#/components/schemas/FilterAny'
explode: false
responses:
'200':
description: OK
/fake/parameter-name-mapping:
get:
tags:
@ -1375,6 +1391,41 @@ components:
type: http
scheme: signature
schemas:
FilterTypeRegex:
type: object
properties:
type:
enum:
- set
- range
type: string
regex:
type: string
required:
- type
FilterTypeRange:
type: object
properties:
type:
enum:
- set
- range
type: string
data:
type: array
items:
type: string
required:
- type
FilterAny:
anyOf:
- $ref: '#/components/schemas/FilterTypeRegex'
- $ref: '#/components/schemas/FilterTypeRange'
discriminator:
mapping:
set: '#/components/schemas/FilterTypeRegex'
range: '#/components/schemas/FilterTypeRange'
propertyName: type
MapWithDateTime:
type: object
additionalProperties:

View File

@ -104,13 +104,13 @@ func (a *FormAPIService) TestFormIntegerBooleanStringExecute(r ApiTestFormIntege
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.integerForm != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "integer_form", r.integerForm, "")
parameterAddToHeaderOrQuery(localVarFormParams, "integer_form", r.integerForm, "", "")
}
if r.booleanForm != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "boolean_form", r.booleanForm, "")
parameterAddToHeaderOrQuery(localVarFormParams, "boolean_form", r.booleanForm, "", "")
}
if r.stringForm != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "string_form", r.stringForm, "")
parameterAddToHeaderOrQuery(localVarFormParams, "string_form", r.stringForm, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -248,22 +248,22 @@ func (a *FormAPIService) TestFormOneofExecute(r ApiTestFormOneofRequest) (string
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.form1 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form1", r.form1, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form1", r.form1, "", "")
}
if r.form2 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form2", r.form2, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form2", r.form2, "", "")
}
if r.form3 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form3", r.form3, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form3", r.form3, "", "")
}
if r.form4 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form4", r.form4, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form4", r.form4, "", "")
}
if r.id != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "id", r.id, "")
parameterAddToHeaderOrQuery(localVarFormParams, "id", r.id, "", "")
}
if r.name != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "")
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {

View File

@ -116,19 +116,19 @@ func (a *HeaderAPIService) TestHeaderIntegerBooleanStringEnumsExecute(r ApiTestH
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.integerHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "integer_header", r.integerHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "integer_header", r.integerHeader, "form", "")
}
if r.booleanHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_header", r.booleanHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_header", r.booleanHeader, "form", "")
}
if r.stringHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "string_header", r.stringHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "string_header", r.stringHeader, "form", "")
}
if r.enumNonrefStringHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_nonref_string_header", r.enumNonrefStringHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_nonref_string_header", r.enumNonrefStringHeader, "form", "")
}
if r.enumRefStringHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_ref_string_header", r.enumRefStringHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_ref_string_header", r.enumRefStringHeader, "form", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {

View File

@ -82,10 +82,10 @@ func (a *QueryAPIService) TestEnumRefStringExecute(r ApiTestEnumRefStringRequest
localVarFormParams := url.Values{}
if r.enumNonrefStringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_nonref_string_query", r.enumNonrefStringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_nonref_string_query", r.enumNonrefStringQuery, "form", "")
}
if r.enumRefStringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_ref_string_query", r.enumRefStringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_ref_string_query", r.enumRefStringQuery, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -205,13 +205,13 @@ func (a *QueryAPIService) TestQueryDatetimeDateStringExecute(r ApiTestQueryDatet
localVarFormParams := url.Values{}
if r.datetimeQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "datetime_query", r.datetimeQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "datetime_query", r.datetimeQuery, "form", "")
}
if r.dateQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "date_query", r.dateQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "date_query", r.dateQuery, "form", "")
}
if r.stringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -331,13 +331,13 @@ func (a *QueryAPIService) TestQueryIntegerBooleanStringExecute(r ApiTestQueryInt
localVarFormParams := url.Values{}
if r.integerQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "integer_query", r.integerQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "integer_query", r.integerQuery, "form", "")
}
if r.booleanQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "boolean_query", r.booleanQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "boolean_query", r.booleanQuery, "form", "")
}
if r.stringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -445,7 +445,7 @@ func (a *QueryAPIService) TestQueryStyleDeepObjectExplodeTrueObjectExecute(r Api
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "deepObject", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -553,7 +553,7 @@ func (a *QueryAPIService) TestQueryStyleDeepObjectExplodeTrueObjectAllOfExecute(
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "deepObject", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -661,7 +661,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeFalseArrayIntegerExecute(r Ap
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "csv")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -769,7 +769,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeFalseArrayStringExecute(r Api
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "csv")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -877,7 +877,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeTrueArrayStringExecute(r ApiT
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -985,7 +985,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeTrueObjectExecute(r ApiTestQu
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -1093,7 +1093,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeTrueObjectAllOfExecute(r ApiT
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}

View File

@ -158,7 +158,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -174,11 +174,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -190,7 +190,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -202,14 +206,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -104,13 +104,13 @@ func (a *FormAPIService) TestFormIntegerBooleanStringExecute(r ApiTestFormIntege
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.integerForm != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "integer_form", r.integerForm, "")
parameterAddToHeaderOrQuery(localVarFormParams, "integer_form", r.integerForm, "", "")
}
if r.booleanForm != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "boolean_form", r.booleanForm, "")
parameterAddToHeaderOrQuery(localVarFormParams, "boolean_form", r.booleanForm, "", "")
}
if r.stringForm != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "string_form", r.stringForm, "")
parameterAddToHeaderOrQuery(localVarFormParams, "string_form", r.stringForm, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -220,7 +220,7 @@ func (a *FormAPIService) TestFormObjectMultipartExecute(r ApiTestFormObjectMulti
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarFormParams, "marker", r.marker, "")
parameterAddToHeaderOrQuery(localVarFormParams, "marker", r.marker, "", "")
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
@ -357,22 +357,22 @@ func (a *FormAPIService) TestFormOneofExecute(r ApiTestFormOneofRequest) (string
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.form1 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form1", r.form1, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form1", r.form1, "", "")
}
if r.form2 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form2", r.form2, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form2", r.form2, "", "")
}
if r.form3 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form3", r.form3, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form3", r.form3, "", "")
}
if r.form4 != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "form4", r.form4, "")
parameterAddToHeaderOrQuery(localVarFormParams, "form4", r.form4, "", "")
}
if r.id != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "id", r.id, "")
parameterAddToHeaderOrQuery(localVarFormParams, "id", r.id, "", "")
}
if r.name != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "")
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {

View File

@ -116,19 +116,19 @@ func (a *HeaderAPIService) TestHeaderIntegerBooleanStringEnumsExecute(r ApiTestH
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.integerHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "integer_header", r.integerHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "integer_header", r.integerHeader, "form", "")
}
if r.booleanHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_header", r.booleanHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_header", r.booleanHeader, "form", "")
}
if r.stringHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "string_header", r.stringHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "string_header", r.stringHeader, "form", "")
}
if r.enumNonrefStringHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_nonref_string_header", r.enumNonrefStringHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_nonref_string_header", r.enumNonrefStringHeader, "form", "")
}
if r.enumRefStringHeader != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_ref_string_header", r.enumRefStringHeader, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_ref_string_header", r.enumRefStringHeader, "form", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {

View File

@ -82,10 +82,10 @@ func (a *QueryAPIService) TestEnumRefStringExecute(r ApiTestEnumRefStringRequest
localVarFormParams := url.Values{}
if r.enumNonrefStringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_nonref_string_query", r.enumNonrefStringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_nonref_string_query", r.enumNonrefStringQuery, "form", "")
}
if r.enumRefStringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_ref_string_query", r.enumRefStringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_ref_string_query", r.enumRefStringQuery, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -205,13 +205,13 @@ func (a *QueryAPIService) TestQueryDatetimeDateStringExecute(r ApiTestQueryDatet
localVarFormParams := url.Values{}
if r.datetimeQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "datetime_query", r.datetimeQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "datetime_query", r.datetimeQuery, "form", "")
}
if r.dateQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "date_query", r.dateQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "date_query", r.dateQuery, "form", "")
}
if r.stringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -331,13 +331,13 @@ func (a *QueryAPIService) TestQueryIntegerBooleanStringExecute(r ApiTestQueryInt
localVarFormParams := url.Values{}
if r.integerQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "integer_query", r.integerQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "integer_query", r.integerQuery, "form", "")
}
if r.booleanQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "boolean_query", r.booleanQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "boolean_query", r.booleanQuery, "form", "")
}
if r.stringQuery != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "string_query", r.stringQuery, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -445,7 +445,7 @@ func (a *QueryAPIService) TestQueryStyleDeepObjectExplodeTrueObjectExecute(r Api
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "deepObject", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -553,7 +553,7 @@ func (a *QueryAPIService) TestQueryStyleDeepObjectExplodeTrueObjectAllOfExecute(
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "deepObject", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -661,7 +661,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeFalseArrayIntegerExecute(r Ap
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "csv")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -769,7 +769,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeFalseArrayStringExecute(r Api
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "csv")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -877,7 +877,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeTrueArrayStringExecute(r ApiT
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -985,7 +985,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeTrueObjectExecute(r ApiTestQu
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -1093,7 +1093,7 @@ func (a *QueryAPIService) TestQueryStyleFormExplodeTrueObjectAllOfExecute(r ApiT
localVarFormParams := url.Values{}
if r.queryObject != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query_object", r.queryObject, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}

View File

@ -158,7 +158,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -174,11 +174,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -190,7 +190,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -202,14 +206,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -139,7 +139,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -155,11 +155,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -171,7 +171,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -183,14 +187,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -139,7 +139,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -155,11 +155,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -171,7 +171,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -183,14 +187,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -15,6 +15,7 @@ import (
"fmt"
)
// Object2 struct for Object2
type Object2 struct {
NestedObject1 *NestedObject1
@ -66,6 +67,7 @@ func (src *Object2) MarshalJSON() ([]byte, error) {
return nil, nil // no data in anyOf schemas
}
type NullableObject2 struct {
value *Object2
isSet bool

View File

@ -41,6 +41,8 @@ func TestOAuth2(t *testing.T) {
PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: sw.PtrString("pending"),
Tags: []sw.Tag{{Id: sw.PtrInt64(1), Name: sw.PtrString("tag2")}}})
t.Log("Host is: ", client.GetConfig().Scheme+"://"+client.GetConfig().Host+", "+client.GetConfig().Servers[0].URL)
r, err := client.PetAPI.AddPet(context.Background()).Body(newPet).Execute()
if err != nil {

View File

@ -121,7 +121,7 @@ func (a *AnotherFakeAPIService) Call123TestSpecialTagsExecute(r ApiCall123TestSp
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "uuid_test", r.uuidTest, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "uuid_test", r.uuidTest, "", "")
// body params
localVarPostBody = r.body
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)

View File

@ -902,7 +902,7 @@ func (a *FakeAPIService) TestBodyWithQueryParamsExecute(r ApiTestBodyWithQueryPa
return nil, reportError("body is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "query", r.query, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query", r.query, "", "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
@ -1247,24 +1247,24 @@ func (a *FakeAPIService) TestEndpointParametersExecute(r ApiTestEndpointParamete
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.integer != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "integer", r.integer, "")
parameterAddToHeaderOrQuery(localVarFormParams, "integer", r.integer, "", "")
}
if r.int32_ != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "int32", r.int32_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "int32", r.int32_, "", "")
}
if r.int64_ != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "int64", r.int64_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "int64", r.int64_, "", "")
}
parameterAddToHeaderOrQuery(localVarFormParams, "number", r.number, "")
parameterAddToHeaderOrQuery(localVarFormParams, "number", r.number, "", "")
if r.float != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "float", r.float, "")
parameterAddToHeaderOrQuery(localVarFormParams, "float", r.float, "", "")
}
parameterAddToHeaderOrQuery(localVarFormParams, "double", r.double, "")
parameterAddToHeaderOrQuery(localVarFormParams, "double", r.double, "", "")
if r.string_ != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "string", r.string_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "string", r.string_, "", "")
}
parameterAddToHeaderOrQuery(localVarFormParams, "pattern_without_delimiter", r.patternWithoutDelimiter, "")
parameterAddToHeaderOrQuery(localVarFormParams, "byte", r.byte_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "pattern_without_delimiter", r.patternWithoutDelimiter, "", "")
parameterAddToHeaderOrQuery(localVarFormParams, "byte", r.byte_, "", "")
var binaryLocalVarFormFileName string
var binaryLocalVarFileName string
var binaryLocalVarFileBytes []byte
@ -1281,16 +1281,16 @@ func (a *FakeAPIService) TestEndpointParametersExecute(r ApiTestEndpointParamete
formFiles = append(formFiles, formFile{fileBytes: binaryLocalVarFileBytes, fileName: binaryLocalVarFileName, formFileName: binaryLocalVarFormFileName})
}
if r.date != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "date", r.date, "")
parameterAddToHeaderOrQuery(localVarFormParams, "date", r.date, "", "")
}
if r.dateTime != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "dateTime", r.dateTime, "")
parameterAddToHeaderOrQuery(localVarFormParams, "dateTime", r.dateTime, "", "")
}
if r.password != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "password", r.password, "")
parameterAddToHeaderOrQuery(localVarFormParams, "password", r.password, "", "")
}
if r.callback != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "callback", r.callback, "")
parameterAddToHeaderOrQuery(localVarFormParams, "callback", r.callback, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -1420,19 +1420,19 @@ func (a *FakeAPIService) TestEnumParametersExecute(r ApiTestEnumParametersReques
localVarFormParams := url.Values{}
if r.enumQueryStringArray != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string_array", r.enumQueryStringArray, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string_array", r.enumQueryStringArray, "form", "csv")
}
if r.enumQueryString != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string", r.enumQueryString, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string", r.enumQueryString, "", "")
} else {
var defaultValue string = "-efg"
r.enumQueryString = &defaultValue
}
if r.enumQueryInteger != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_integer", r.enumQueryInteger, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_integer", r.enumQueryInteger, "", "")
}
if r.enumQueryDouble != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_double", r.enumQueryDouble, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_double", r.enumQueryDouble, "", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/x-www-form-urlencoded"}
@ -1452,16 +1452,16 @@ func (a *FakeAPIService) TestEnumParametersExecute(r ApiTestEnumParametersReques
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.enumHeaderStringArray != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string_array", r.enumHeaderStringArray, "csv")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string_array", r.enumHeaderStringArray, "simple", "csv")
}
if r.enumHeaderString != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string", r.enumHeaderString, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string", r.enumHeaderString, "", "")
}
if r.enumFormStringArray != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string_array", r.enumFormStringArray, "csv")
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string_array", r.enumFormStringArray, "", "csv")
}
if r.enumFormString != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string", r.enumFormString, "")
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string", r.enumFormString, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -1585,13 +1585,13 @@ func (a *FakeAPIService) TestGroupParametersExecute(r ApiTestGroupParametersRequ
return nil, reportError("requiredInt64Group is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "required_string_group", r.requiredStringGroup, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "required_int64_group", r.requiredInt64Group, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "required_string_group", r.requiredStringGroup, "", "")
parameterAddToHeaderOrQuery(localVarQueryParams, "required_int64_group", r.requiredInt64Group, "", "")
if r.stringGroup != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "string_group", r.stringGroup, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "string_group", r.stringGroup, "", "")
}
if r.int64Group != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "int64_group", r.int64Group, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "int64_group", r.int64Group, "", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -1610,9 +1610,9 @@ func (a *FakeAPIService) TestGroupParametersExecute(r ApiTestGroupParametersRequ
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "required_boolean_group", r.requiredBooleanGroup, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "required_boolean_group", r.requiredBooleanGroup, "", "")
if r.booleanGroup != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_group", r.booleanGroup, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_group", r.booleanGroup, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -1818,8 +1818,8 @@ func (a *FakeAPIService) TestJsonFormDataExecute(r ApiTestJsonFormDataRequest) (
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarFormParams, "param", r.param, "")
parameterAddToHeaderOrQuery(localVarFormParams, "param2", r.param2, "")
parameterAddToHeaderOrQuery(localVarFormParams, "param", r.param, "", "")
parameterAddToHeaderOrQuery(localVarFormParams, "param2", r.param2, "", "")
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
@ -1936,19 +1936,19 @@ func (a *FakeAPIService) TestQueryParameterCollectionFormatExecute(r ApiTestQuer
return nil, reportError("context is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "pipe", r.pipe, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "ioutil", r.ioutil, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "http", r.http, "ssv")
parameterAddToHeaderOrQuery(localVarQueryParams, "url", r.url, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "pipe", r.pipe, "form", "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "ioutil", r.ioutil, "", "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "http", r.http, "spaceDelimited", "ssv")
parameterAddToHeaderOrQuery(localVarQueryParams, "url", r.url, "form", "csv")
{
t := *r.context
if reflect.TypeOf(t).Kind() == reflect.Slice {
s := reflect.ValueOf(t)
for i := 0; i < s.Len(); i++ {
parameterAddToHeaderOrQuery(localVarQueryParams, "context", s.Index(i).Interface(), "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "context", s.Index(i).Interface(), "form", "multi")
}
} else {
parameterAddToHeaderOrQuery(localVarQueryParams, "context", t, "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "context", t, "form", "multi")
}
}
// to determine the Content-Type header

View File

@ -312,7 +312,7 @@ func (a *PetAPIService) DeletePetExecute(r ApiDeletePetRequest) (*http.Response,
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.apiKey != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "api_key", r.apiKey, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "api_key", r.apiKey, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -397,7 +397,7 @@ func (a *PetAPIService) FindPetsByStatusExecute(r ApiFindPetsByStatusRequest) ([
return localVarReturnValue, nil, reportError("status is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "status", r.status, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "status", r.status, "form", "csv")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -510,7 +510,7 @@ func (a *PetAPIService) FindPetsByTagsExecute(r ApiFindPetsByTagsRequest) ([]Pet
return localVarReturnValue, nil, reportError("tags is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "tags", r.tags, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "tags", r.tags, "form", "csv")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -857,10 +857,10 @@ func (a *PetAPIService) UpdatePetWithFormExecute(r ApiUpdatePetWithFormRequest)
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.name != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "")
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "", "")
}
if r.status != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "status", r.status, "")
parameterAddToHeaderOrQuery(localVarFormParams, "status", r.status, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -969,7 +969,7 @@ func (a *PetAPIService) UploadFileExecute(r ApiUploadFileRequest) (*ApiResponse,
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.additionalMetadata != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "")
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "", "")
}
var fileLocalVarFormFileName string
var fileLocalVarFileName string
@ -1105,7 +1105,7 @@ func (a *PetAPIService) UploadFileWithRequiredFileExecute(r ApiUploadFileWithReq
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.additionalMetadata != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "")
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "", "")
}
var requiredFileLocalVarFormFileName string
var requiredFileLocalVarFileName string

View File

@ -677,8 +677,8 @@ func (a *UserAPIService) LoginUserExecute(r ApiLoginUserRequest) (string, *http.
return localVarReturnValue, nil, reportError("password is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "username", r.username, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "password", r.password, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "username", r.username, "", "")
parameterAddToHeaderOrQuery(localVarQueryParams, "password", r.password, "", "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}

View File

@ -158,7 +158,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -174,11 +174,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -190,7 +190,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -202,14 +206,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -5,9 +5,11 @@ replace github.com/OpenAPITools/openapi-generator/samples/client/petstore/go/go-
go 1.13
require (
cloud.google.com/go/compute v1.20.1 // indirect
github.com/OpenAPITools/openapi-generator/samples/client/petstore/go/go-petstore v0.0.0-00010101000000-000000000000
github.com/go-openapi/swag v0.22.3
github.com/stretchr/testify v1.8.4
golang.org/x/net v0.20.0 // indirect
golang.org/x/oauth2 v0.16.0
github.com/stretchr/testify v1.9.0
golang.org/x/net v0.27.0 // indirect
golang.org/x/oauth2 v0.21.0
google.golang.org/protobuf v1.31.0 // indirect
)

View File

@ -178,6 +178,7 @@ cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZ
cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY=
cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck=
cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w=
@ -734,6 +735,7 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
@ -847,6 +849,7 @@ github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcD
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
@ -859,6 +862,8 @@ github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKs
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@ -892,7 +897,12 @@ golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -950,6 +960,9 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@ -1015,8 +1028,15 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -1055,6 +1075,8 @@ golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ=
golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o=
golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -1072,6 +1094,9 @@ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -1151,7 +1176,13 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@ -1162,7 +1193,12 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -1179,7 +1215,10 @@ golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@ -1247,6 +1286,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

View File

@ -130,7 +130,7 @@ func TestFindPetsByTag(t *testing.T) {
func TestFindPetsByStatus(t *testing.T) {
resp, r, err := client.PetAPI.FindPetsByStatus(context.Background()).Status([]string{"available"}).Execute()
if err != nil {
t.Fatalf("Error while getting pet by id: %v", err)
t.Fatalf("Error while getting pet by status: %v", err)
t.Log(r)
} else {
if len(resp) == 0 {

View File

@ -142,7 +142,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -158,11 +158,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -174,7 +174,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -186,14 +190,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -143,7 +143,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -159,11 +159,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -175,7 +175,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -187,14 +191,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -2,14 +2,15 @@ package main
import (
"context"
"github.com/stretchr/testify/assert"
"testing"
"github.com/stretchr/testify/assert"
sw "go-petstore"
)
const (
deepObjectURL = `/v2/fake/deep_object_test?inputOptions[F1]=1&inputOptions[F2]=teststring&inputOptions[F3]=null&inputOptions[id]=1&inputOptions[name]=TestCat&test_pet[F1]=1&test_pet[F2]=teststring&test_pet[F3]=null&test_pet[id]=1&test_pet[name]=Test&test_pet[photoUrls]=http%3A%2F%2Flocalhost&test_pet[tags][F1]=1&test_pet[tags][F2]=teststring&test_pet[tags][F3]=null&test_pet[tags][id]=2&test_pet[tags][name]=tag1`
deepObjectURL = `/v2/fake/deep_object_test?inputOptions[F1]=1&inputOptions[F2]=teststring&inputOptions[F3]=null&inputOptions[id]=1&inputOptions[name]=TestCat&test_pet[F1]=1&test_pet[F2]=teststring&test_pet[F3]=null&test_pet[id]=1&test_pet[name]=Test&test_pet[photoUrls][0]=http%3A%2F%2Flocalhost&test_pet[tags][0][F1]=1&test_pet[tags][0][F2]=teststring&test_pet[tags][0][F3]=null&test_pet[tags][0][id]=2&test_pet[tags][0][name]=tag1`
paramCollectionFormatURL = `/v2/fake/test-query-parameters?context=context&http=http&ioutil=ioutil&pipe=pipe&url=url`
)

View File

@ -40,6 +40,9 @@ docs/FakeAPI.md
docs/FakeClassnameTags123API.md
docs/File.md
docs/FileSchemaTestClass.md
docs/FilterAny.md
docs/FilterTypeRange.md
docs/FilterTypeRegex.md
docs/Foo.md
docs/FooGetDefaultResponse.md
docs/FormatTest.md
@ -117,6 +120,9 @@ model_enum_class.go
model_enum_test_.go
model_file.go
model_file_schema_test_class.go
model_filter_any.go
model_filter_type_range.go
model_filter_type_regex.go
model_foo.go
model_format_test_.go
model_fruit.go

View File

@ -99,6 +99,7 @@ Class | Method | HTTP request | Description
*FakeAPI* | [**TestInlineFreeformAdditionalProperties**](docs/FakeAPI.md#testinlinefreeformadditionalproperties) | **Post** /fake/inline-freeform-additionalProperties | test inline free-form additionalProperties
*FakeAPI* | [**TestJsonFormData**](docs/FakeAPI.md#testjsonformdata) | **Get** /fake/jsonFormData | test json serialization of form data
*FakeAPI* | [**TestQueryDeepObject**](docs/FakeAPI.md#testquerydeepobject) | **Get** /fake/deep_object_test |
*FakeAPI* | [**TestQueryDeepObjectAnyof**](docs/FakeAPI.md#testquerydeepobjectanyof) | **Get** /fake/deep_object_anyof_test |
*FakeAPI* | [**TestQueryParameterCollectionFormat**](docs/FakeAPI.md#testqueryparametercollectionformat) | **Put** /fake/test-query-parameters |
*FakeAPI* | [**TestStringMapReference**](docs/FakeAPI.md#teststringmapreference) | **Post** /fake/stringMap-reference | test referenced string map
*FakeAPI* | [**TestUniqueItemsHeaderAndQueryParameterCollectionFormat**](docs/FakeAPI.md#testuniqueitemsheaderandqueryparametercollectionformat) | **Put** /fake/test-unique-parameters |
@ -153,6 +154,9 @@ Class | Method | HTTP request | Description
- [EnumTest](docs/EnumTest.md)
- [File](docs/File.md)
- [FileSchemaTestClass](docs/FileSchemaTestClass.md)
- [FilterAny](docs/FilterAny.md)
- [FilterTypeRange](docs/FilterTypeRange.md)
- [FilterTypeRegex](docs/FilterTypeRegex.md)
- [Foo](docs/Foo.md)
- [FooGetDefaultResponse](docs/FooGetDefaultResponse.md)
- [FormatTest](docs/FormatTest.md)

View File

@ -1190,6 +1190,22 @@ paths:
description: OK
tags:
- fake
/fake/deep_object_anyof_test:
get:
operationId: test_query_deep_object_anyof
parameters:
- explode: false
in: query
name: filter
required: false
schema:
$ref: '#/components/schemas/FilterAny'
style: deepObject
responses:
"200":
description: OK
tags:
- fake
/fake/parameter-name-mapping:
get:
operationId: getParameterNameMapping
@ -1278,6 +1294,41 @@ components:
description: Pet object that needs to be added to the store
required: true
schemas:
FilterTypeRegex:
properties:
type:
enum:
- set
- range
type: string
regex:
type: string
required:
- type
type: object
FilterTypeRange:
properties:
type:
enum:
- set
- range
type: string
data:
items:
type: string
type: array
required:
- type
type: object
FilterAny:
anyOf:
- $ref: '#/components/schemas/FilterTypeRegex'
- $ref: '#/components/schemas/FilterTypeRange'
discriminator:
mapping:
set: '#/components/schemas/FilterTypeRegex'
range: '#/components/schemas/FilterTypeRange'
propertyName: type
MapWithDateTime:
additionalProperties:
items:

View File

@ -247,6 +247,17 @@ type FakeAPI interface {
// TestQueryDeepObjectExecute executes the request
TestQueryDeepObjectExecute(r ApiTestQueryDeepObjectRequest) (*http.Response, error)
/*
TestQueryDeepObjectAnyof Method for TestQueryDeepObjectAnyof
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiTestQueryDeepObjectAnyofRequest
*/
TestQueryDeepObjectAnyof(ctx context.Context) ApiTestQueryDeepObjectAnyofRequest
// TestQueryDeepObjectAnyofExecute executes the request
TestQueryDeepObjectAnyofExecute(r ApiTestQueryDeepObjectAnyofRequest) (*http.Response, error)
/*
TestQueryParameterCollectionFormat Method for TestQueryParameterCollectionFormat
@ -901,8 +912,8 @@ func (a *FakeAPIService) GetParameterNameMappingExecute(r ApiGetParameterNameMap
return nil, reportError("httpDebugOption is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "type", r.type_, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "http_debug_option", r.httpDebugOption, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "type", r.type_, "form", "")
parameterAddToHeaderOrQuery(localVarQueryParams, "http_debug_option", r.httpDebugOption, "form", "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -920,8 +931,8 @@ func (a *FakeAPIService) GetParameterNameMappingExecute(r ApiGetParameterNameMap
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "_type", r.underscoreType, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "type_", r.typeWithUnderscore, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "_type", r.underscoreType, "simple", "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "type_", r.typeWithUnderscore, "simple", "")
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
@ -1208,7 +1219,7 @@ func (a *FakeAPIService) TestBodyWithQueryParamsExecute(r ApiTestBodyWithQueryPa
return nil, reportError("user is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "query", r.query, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "query", r.query, "form", "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
@ -1554,24 +1565,24 @@ func (a *FakeAPIService) TestEndpointParametersExecute(r ApiTestEndpointParamete
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.integer != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "integer", r.integer, "")
parameterAddToHeaderOrQuery(localVarFormParams, "integer", r.integer, "", "")
}
if r.int32_ != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "int32", r.int32_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "int32", r.int32_, "", "")
}
if r.int64_ != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "int64", r.int64_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "int64", r.int64_, "", "")
}
parameterAddToHeaderOrQuery(localVarFormParams, "number", r.number, "")
parameterAddToHeaderOrQuery(localVarFormParams, "number", r.number, "", "")
if r.float != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "float", r.float, "")
parameterAddToHeaderOrQuery(localVarFormParams, "float", r.float, "", "")
}
parameterAddToHeaderOrQuery(localVarFormParams, "double", r.double, "")
parameterAddToHeaderOrQuery(localVarFormParams, "double", r.double, "", "")
if r.string_ != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "string", r.string_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "string", r.string_, "", "")
}
parameterAddToHeaderOrQuery(localVarFormParams, "pattern_without_delimiter", r.patternWithoutDelimiter, "")
parameterAddToHeaderOrQuery(localVarFormParams, "byte", r.byte_, "")
parameterAddToHeaderOrQuery(localVarFormParams, "pattern_without_delimiter", r.patternWithoutDelimiter, "", "")
parameterAddToHeaderOrQuery(localVarFormParams, "byte", r.byte_, "", "")
var binaryLocalVarFormFileName string
var binaryLocalVarFileName string
var binaryLocalVarFileBytes []byte
@ -1588,16 +1599,16 @@ func (a *FakeAPIService) TestEndpointParametersExecute(r ApiTestEndpointParamete
formFiles = append(formFiles, formFile{fileBytes: binaryLocalVarFileBytes, fileName: binaryLocalVarFileName, formFileName: binaryLocalVarFormFileName})
}
if r.date != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "date", r.date, "")
parameterAddToHeaderOrQuery(localVarFormParams, "date", r.date, "", "")
}
if r.dateTime != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "dateTime", r.dateTime, "")
parameterAddToHeaderOrQuery(localVarFormParams, "dateTime", r.dateTime, "", "")
}
if r.password != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "password", r.password, "")
parameterAddToHeaderOrQuery(localVarFormParams, "password", r.password, "", "")
}
if r.callback != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "callback", r.callback, "")
parameterAddToHeaderOrQuery(localVarFormParams, "callback", r.callback, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -1731,23 +1742,23 @@ func (a *FakeAPIService) TestEnumParametersExecute(r ApiTestEnumParametersReques
if reflect.TypeOf(t).Kind() == reflect.Slice {
s := reflect.ValueOf(t)
for i := 0; i < s.Len(); i++ {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string_array", s.Index(i).Interface(), "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string_array", s.Index(i).Interface(), "form", "multi")
}
} else {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string_array", t, "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string_array", t, "form", "multi")
}
}
if r.enumQueryString != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string", r.enumQueryString, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_string", r.enumQueryString, "form", "")
} else {
var defaultValue string = "-efg"
r.enumQueryString = &defaultValue
}
if r.enumQueryInteger != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_integer", r.enumQueryInteger, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_integer", r.enumQueryInteger, "form", "")
}
if r.enumQueryDouble != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_double", r.enumQueryDouble, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "enum_query_double", r.enumQueryDouble, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/x-www-form-urlencoded"}
@ -1767,16 +1778,16 @@ func (a *FakeAPIService) TestEnumParametersExecute(r ApiTestEnumParametersReques
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.enumHeaderStringArray != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string_array", r.enumHeaderStringArray, "csv")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string_array", r.enumHeaderStringArray, "simple", "csv")
}
if r.enumHeaderString != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string", r.enumHeaderString, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "enum_header_string", r.enumHeaderString, "simple", "")
}
if r.enumFormStringArray != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string_array", r.enumFormStringArray, "csv")
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string_array", r.enumFormStringArray, "", "csv")
}
if r.enumFormString != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string", r.enumFormString, "")
parameterAddToHeaderOrQuery(localVarFormParams, "enum_form_string", r.enumFormString, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -1900,13 +1911,13 @@ func (a *FakeAPIService) TestGroupParametersExecute(r ApiTestGroupParametersRequ
return nil, reportError("requiredInt64Group is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "required_string_group", r.requiredStringGroup, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "required_int64_group", r.requiredInt64Group, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "required_string_group", r.requiredStringGroup, "form", "")
parameterAddToHeaderOrQuery(localVarQueryParams, "required_int64_group", r.requiredInt64Group, "form", "")
if r.stringGroup != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "string_group", r.stringGroup, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "string_group", r.stringGroup, "form", "")
}
if r.int64Group != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "int64_group", r.int64Group, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "int64_group", r.int64Group, "form", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -1925,9 +1936,9 @@ func (a *FakeAPIService) TestGroupParametersExecute(r ApiTestGroupParametersRequ
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "required_boolean_group", r.requiredBooleanGroup, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "required_boolean_group", r.requiredBooleanGroup, "simple", "")
if r.booleanGroup != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_group", r.booleanGroup, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "boolean_group", r.booleanGroup, "simple", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -2247,8 +2258,8 @@ func (a *FakeAPIService) TestJsonFormDataExecute(r ApiTestJsonFormDataRequest) (
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarFormParams, "param", r.param, "")
parameterAddToHeaderOrQuery(localVarFormParams, "param2", r.param2, "")
parameterAddToHeaderOrQuery(localVarFormParams, "param", r.param, "", "")
parameterAddToHeaderOrQuery(localVarFormParams, "param2", r.param2, "", "")
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
@ -2331,10 +2342,105 @@ func (a *FakeAPIService) TestQueryDeepObjectExecute(r ApiTestQueryDeepObjectRequ
localVarFormParams := url.Values{}
if r.testPet != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "test_pet", r.testPet, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "test_pet", r.testPet, "deepObject", "")
}
if r.inputOptions != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "inputOptions", r.inputOptions, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "inputOptions", r.inputOptions, "deepObject", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}
type ApiTestQueryDeepObjectAnyofRequest struct {
ctx context.Context
ApiService FakeAPI
filter *FilterAny
}
func (r ApiTestQueryDeepObjectAnyofRequest) Filter(filter FilterAny) ApiTestQueryDeepObjectAnyofRequest {
r.filter = &filter
return r
}
func (r ApiTestQueryDeepObjectAnyofRequest) Execute() (*http.Response, error) {
return r.ApiService.TestQueryDeepObjectAnyofExecute(r)
}
/*
TestQueryDeepObjectAnyof Method for TestQueryDeepObjectAnyof
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiTestQueryDeepObjectAnyofRequest
*/
func (a *FakeAPIService) TestQueryDeepObjectAnyof(ctx context.Context) ApiTestQueryDeepObjectAnyofRequest {
return ApiTestQueryDeepObjectAnyofRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *FakeAPIService) TestQueryDeepObjectAnyofExecute(r ApiTestQueryDeepObjectAnyofRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FakeAPIService.TestQueryDeepObjectAnyof")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/fake/deep_object_anyof_test"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.filter != nil {
parameterAddToHeaderOrQuery(localVarQueryParams, "filter", r.filter, "deepObject", "")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -2474,24 +2580,24 @@ func (a *FakeAPIService) TestQueryParameterCollectionFormatExecute(r ApiTestQuer
if reflect.TypeOf(t).Kind() == reflect.Slice {
s := reflect.ValueOf(t)
for i := 0; i < s.Len(); i++ {
parameterAddToHeaderOrQuery(localVarQueryParams, "pipe", s.Index(i).Interface(), "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "pipe", s.Index(i).Interface(), "form", "multi")
}
} else {
parameterAddToHeaderOrQuery(localVarQueryParams, "pipe", t, "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "pipe", t, "form", "multi")
}
}
parameterAddToHeaderOrQuery(localVarQueryParams, "ioutil", r.ioutil, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "http", r.http, "ssv")
parameterAddToHeaderOrQuery(localVarQueryParams, "url", r.url, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "ioutil", r.ioutil, "form", "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "http", r.http, "spaceDelimited", "ssv")
parameterAddToHeaderOrQuery(localVarQueryParams, "url", r.url, "form", "csv")
{
t := *r.context
if reflect.TypeOf(t).Kind() == reflect.Slice {
s := reflect.ValueOf(t)
for i := 0; i < s.Len(); i++ {
parameterAddToHeaderOrQuery(localVarQueryParams, "context", s.Index(i).Interface(), "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "context", s.Index(i).Interface(), "form", "multi")
}
} else {
parameterAddToHeaderOrQuery(localVarQueryParams, "context", t, "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "context", t, "form", "multi")
}
}
// to determine the Content-Type header
@ -2707,10 +2813,10 @@ func (a *FakeAPIService) TestUniqueItemsHeaderAndQueryParameterCollectionFormatE
if reflect.TypeOf(t).Kind() == reflect.Slice {
s := reflect.ValueOf(t)
for i := 0; i < s.Len(); i++ {
parameterAddToHeaderOrQuery(localVarQueryParams, "queryUnique", s.Index(i).Interface(), "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "queryUnique", s.Index(i).Interface(), "form", "multi")
}
} else {
parameterAddToHeaderOrQuery(localVarQueryParams, "queryUnique", t, "multi")
parameterAddToHeaderOrQuery(localVarQueryParams, "queryUnique", t, "form", "multi")
}
}
// to determine the Content-Type header
@ -2730,7 +2836,7 @@ func (a *FakeAPIService) TestUniqueItemsHeaderAndQueryParameterCollectionFormatE
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "headerUnique", r.headerUnique, "csv")
parameterAddToHeaderOrQuery(localVarHeaderParams, "headerUnique", r.headerUnique, "simple", "csv")
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err

View File

@ -328,7 +328,7 @@ func (a *PetAPIService) DeletePetExecute(r ApiDeletePetRequest) (*http.Response,
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.apiKey != nil {
parameterAddToHeaderOrQuery(localVarHeaderParams, "api_key", r.apiKey, "")
parameterAddToHeaderOrQuery(localVarHeaderParams, "api_key", r.apiKey, "simple", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -414,7 +414,7 @@ func (a *PetAPIService) FindPetsByStatusExecute(r ApiFindPetsByStatusRequest) ([
return localVarReturnValue, nil, reportError("status is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "status", r.status, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "status", r.status, "form", "csv")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -527,7 +527,7 @@ func (a *PetAPIService) FindPetsByTagsExecute(r ApiFindPetsByTagsRequest) ([]Pet
return localVarReturnValue, nil, reportError("tags is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "tags", r.tags, "csv")
parameterAddToHeaderOrQuery(localVarQueryParams, "tags", r.tags, "form", "csv")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
@ -878,10 +878,10 @@ func (a *PetAPIService) UpdatePetWithFormExecute(r ApiUpdatePetWithFormRequest)
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.name != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "")
parameterAddToHeaderOrQuery(localVarFormParams, "name", r.name, "", "")
}
if r.status != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "status", r.status, "")
parameterAddToHeaderOrQuery(localVarFormParams, "status", r.status, "", "")
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
@ -992,7 +992,7 @@ func (a *PetAPIService) UploadFileExecute(r ApiUploadFileRequest) (*ApiResponse,
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.additionalMetadata != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "")
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "", "")
}
var fileLocalVarFormFileName string
var fileLocalVarFileName string
@ -1130,7 +1130,7 @@ func (a *PetAPIService) UploadFileWithRequiredFileExecute(r ApiUploadFileWithReq
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
if r.additionalMetadata != nil {
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "")
parameterAddToHeaderOrQuery(localVarFormParams, "additionalMetadata", r.additionalMetadata, "", "")
}
var requiredFileLocalVarFormFileName string
var requiredFileLocalVarFileName string

View File

@ -695,8 +695,8 @@ func (a *UserAPIService) LoginUserExecute(r ApiLoginUserRequest) (string, *http.
return localVarReturnValue, nil, reportError("password is required and must be specified")
}
parameterAddToHeaderOrQuery(localVarQueryParams, "username", r.username, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "password", r.password, "")
parameterAddToHeaderOrQuery(localVarQueryParams, "username", r.username, "form", "")
parameterAddToHeaderOrQuery(localVarQueryParams, "password", r.password, "form", "")
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}

View File

@ -161,7 +161,7 @@ func parameterValueToString( obj interface{}, key string ) string {
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, style string, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
@ -177,11 +177,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, style, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339Nano), style, collectionType)
return
}
value = v.Type().String() + " value"
@ -193,7 +193,11 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
var keyPrefixForCollectionType = keyPrefix
if style == "deepObject" {
keyPrefixForCollectionType = keyPrefix + "[" + strconv.Itoa(i) + "]"
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefixForCollectionType, arrayValue.Interface(), style, collectionType)
}
return
@ -205,14 +209,14 @@ func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix stri
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), style, collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), style, collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,

View File

@ -21,6 +21,7 @@ Method | HTTP request | Description
[**TestInlineFreeformAdditionalProperties**](FakeAPI.md#TestInlineFreeformAdditionalProperties) | **Post** /fake/inline-freeform-additionalProperties | test inline free-form additionalProperties
[**TestJsonFormData**](FakeAPI.md#TestJsonFormData) | **Get** /fake/jsonFormData | test json serialization of form data
[**TestQueryDeepObject**](FakeAPI.md#TestQueryDeepObject) | **Get** /fake/deep_object_test |
[**TestQueryDeepObjectAnyof**](FakeAPI.md#TestQueryDeepObjectAnyof) | **Get** /fake/deep_object_anyof_test |
[**TestQueryParameterCollectionFormat**](FakeAPI.md#TestQueryParameterCollectionFormat) | **Put** /fake/test-query-parameters |
[**TestStringMapReference**](FakeAPI.md#TestStringMapReference) | **Post** /fake/stringMap-reference | test referenced string map
[**TestUniqueItemsHeaderAndQueryParameterCollectionFormat**](FakeAPI.md#TestUniqueItemsHeaderAndQueryParameterCollectionFormat) | **Put** /fake/test-unique-parameters |
@ -1177,6 +1178,68 @@ No authorization required
[[Back to README]](../README.md)
## TestQueryDeepObjectAnyof
> TestQueryDeepObjectAnyof(ctx).Filter(filter).Execute()
### Example
```go
package main
import (
"context"
"fmt"
"os"
openapiclient "github.com/GIT_USER_ID/GIT_REPO_ID"
)
func main() {
filter := *openapiclient.NewFilterAny("Type_example") // FilterAny | (optional)
configuration := openapiclient.NewConfiguration()
apiClient := openapiclient.NewAPIClient(configuration)
r, err := apiClient.FakeAPI.TestQueryDeepObjectAnyof(context.Background()).Filter(filter).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `FakeAPI.TestQueryDeepObjectAnyof``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiTestQueryDeepObjectAnyofRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**filter** | [**FilterAny**](FilterAny.md) | |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## TestQueryParameterCollectionFormat
> TestQueryParameterCollectionFormat(ctx).Pipe(pipe).Ioutil(ioutil).Http(http).Url(url).Context(context).Execute()

View File

@ -0,0 +1,103 @@
# FilterAny
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Type** | **string** | |
**Regex** | Pointer to **string** | | [optional]
**Data** | Pointer to **[]string** | | [optional]
## Methods
### NewFilterAny
`func NewFilterAny(type_ string, ) *FilterAny`
NewFilterAny instantiates a new FilterAny object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewFilterAnyWithDefaults
`func NewFilterAnyWithDefaults() *FilterAny`
NewFilterAnyWithDefaults instantiates a new FilterAny object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetType
`func (o *FilterAny) GetType() string`
GetType returns the Type field if non-nil, zero value otherwise.
### GetTypeOk
`func (o *FilterAny) GetTypeOk() (*string, bool)`
GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetType
`func (o *FilterAny) SetType(v string)`
SetType sets Type field to given value.
### GetRegex
`func (o *FilterAny) GetRegex() string`
GetRegex returns the Regex field if non-nil, zero value otherwise.
### GetRegexOk
`func (o *FilterAny) GetRegexOk() (*string, bool)`
GetRegexOk returns a tuple with the Regex field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRegex
`func (o *FilterAny) SetRegex(v string)`
SetRegex sets Regex field to given value.
### HasRegex
`func (o *FilterAny) HasRegex() bool`
HasRegex returns a boolean if a field has been set.
### GetData
`func (o *FilterAny) GetData() []string`
GetData returns the Data field if non-nil, zero value otherwise.
### GetDataOk
`func (o *FilterAny) GetDataOk() (*[]string, bool)`
GetDataOk returns a tuple with the Data field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetData
`func (o *FilterAny) SetData(v []string)`
SetData sets Data field to given value.
### HasData
`func (o *FilterAny) HasData() bool`
HasData returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,77 @@
# FilterTypeRange
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Type** | **string** | |
**Data** | Pointer to **[]string** | | [optional]
## Methods
### NewFilterTypeRange
`func NewFilterTypeRange(type_ string, ) *FilterTypeRange`
NewFilterTypeRange instantiates a new FilterTypeRange object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewFilterTypeRangeWithDefaults
`func NewFilterTypeRangeWithDefaults() *FilterTypeRange`
NewFilterTypeRangeWithDefaults instantiates a new FilterTypeRange object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetType
`func (o *FilterTypeRange) GetType() string`
GetType returns the Type field if non-nil, zero value otherwise.
### GetTypeOk
`func (o *FilterTypeRange) GetTypeOk() (*string, bool)`
GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetType
`func (o *FilterTypeRange) SetType(v string)`
SetType sets Type field to given value.
### GetData
`func (o *FilterTypeRange) GetData() []string`
GetData returns the Data field if non-nil, zero value otherwise.
### GetDataOk
`func (o *FilterTypeRange) GetDataOk() (*[]string, bool)`
GetDataOk returns a tuple with the Data field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetData
`func (o *FilterTypeRange) SetData(v []string)`
SetData sets Data field to given value.
### HasData
`func (o *FilterTypeRange) HasData() bool`
HasData returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -0,0 +1,77 @@
# FilterTypeRegex
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Type** | **string** | |
**Regex** | Pointer to **string** | | [optional]
## Methods
### NewFilterTypeRegex
`func NewFilterTypeRegex(type_ string, ) *FilterTypeRegex`
NewFilterTypeRegex instantiates a new FilterTypeRegex object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewFilterTypeRegexWithDefaults
`func NewFilterTypeRegexWithDefaults() *FilterTypeRegex`
NewFilterTypeRegexWithDefaults instantiates a new FilterTypeRegex object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetType
`func (o *FilterTypeRegex) GetType() string`
GetType returns the Type field if non-nil, zero value otherwise.
### GetTypeOk
`func (o *FilterTypeRegex) GetTypeOk() (*string, bool)`
GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetType
`func (o *FilterTypeRegex) SetType(v string)`
SetType sets Type field to given value.
### GetRegex
`func (o *FilterTypeRegex) GetRegex() string`
GetRegex returns the Regex field if non-nil, zero value otherwise.
### GetRegexOk
`func (o *FilterTypeRegex) GetRegexOk() (*string, bool)`
GetRegexOk returns a tuple with the Regex field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRegex
`func (o *FilterTypeRegex) SetRegex(v string)`
SetRegex sets Regex field to given value.
### HasRegex
`func (o *FilterTypeRegex) HasRegex() bool`
HasRegex returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@ -15,6 +15,7 @@ import (
"fmt"
)
// AnyOfPrimitiveType struct for AnyOfPrimitiveType
type AnyOfPrimitiveType struct {
OneOfPrimitiveTypeChild *OneOfPrimitiveTypeChild
@ -84,6 +85,7 @@ func (src *AnyOfPrimitiveType) MarshalJSON() ([]byte, error) {
return nil, nil // no data in anyOf schemas
}
type NullableAnyOfPrimitiveType struct {
value *AnyOfPrimitiveType
isSet bool

View File

@ -0,0 +1,191 @@
/*
OpenAPI Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
API version: 1.0.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package petstore
import (
"encoding/json"
"fmt"
)
// checks if the FilterAny type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &FilterAny{}
// FilterAny struct for FilterAny
type FilterAny struct {
FilterTypeRange *FilterTypeRange
FilterTypeRegex *FilterTypeRegex
}
// Unmarshal JSON data into any of the pointers in the struct
func (dst *FilterAny) UnmarshalJSON(data []byte) error {
var err error
// use discriminator value to speed up the lookup
var jsonDict map[string]interface{}
err = json.Unmarshal(data, &jsonDict)
if err != nil {
return fmt.Errorf("failed to unmarshal JSON into map for the discriminator lookup")
}
// check if the discriminator value is 'range'
if jsonDict["type"] == "range" {
// try to unmarshal JSON data into FilterTypeRange
err = json.Unmarshal(data, &dst.FilterTypeRange);
if err == nil {
jsonFilterTypeRange, _ := json.Marshal(dst.FilterTypeRange)
if string(jsonFilterTypeRange) == "{}" { // empty struct
dst.FilterTypeRange = nil
} else {
return nil // data stored in dst.FilterTypeRange, return on the first match
}
} else {
dst.FilterTypeRange = nil
}
}
// check if the discriminator value is 'set'
if jsonDict["type"] == "set" {
// try to unmarshal JSON data into FilterTypeRegex
err = json.Unmarshal(data, &dst.FilterTypeRegex);
if err == nil {
jsonFilterTypeRegex, _ := json.Marshal(dst.FilterTypeRegex)
if string(jsonFilterTypeRegex) == "{}" { // empty struct
dst.FilterTypeRegex = nil
} else {
return nil // data stored in dst.FilterTypeRegex, return on the first match
}
} else {
dst.FilterTypeRegex = nil
}
}
// check if the discriminator value is 'FilterTypeRange'
if jsonDict["type"] == "FilterTypeRange" {
// try to unmarshal JSON data into FilterTypeRange
err = json.Unmarshal(data, &dst.FilterTypeRange);
if err == nil {
jsonFilterTypeRange, _ := json.Marshal(dst.FilterTypeRange)
if string(jsonFilterTypeRange) == "{}" { // empty struct
dst.FilterTypeRange = nil
} else {
return nil // data stored in dst.FilterTypeRange, return on the first match
}
} else {
dst.FilterTypeRange = nil
}
}
// check if the discriminator value is 'FilterTypeRegex'
if jsonDict["type"] == "FilterTypeRegex" {
// try to unmarshal JSON data into FilterTypeRegex
err = json.Unmarshal(data, &dst.FilterTypeRegex);
if err == nil {
jsonFilterTypeRegex, _ := json.Marshal(dst.FilterTypeRegex)
if string(jsonFilterTypeRegex) == "{}" { // empty struct
dst.FilterTypeRegex = nil
} else {
return nil // data stored in dst.FilterTypeRegex, return on the first match
}
} else {
dst.FilterTypeRegex = nil
}
}
// try to unmarshal JSON data into FilterTypeRange
err = json.Unmarshal(data, &dst.FilterTypeRange);
if err == nil {
jsonFilterTypeRange, _ := json.Marshal(dst.FilterTypeRange)
if string(jsonFilterTypeRange) == "{}" { // empty struct
dst.FilterTypeRange = nil
} else {
return nil // data stored in dst.FilterTypeRange, return on the first match
}
} else {
dst.FilterTypeRange = nil
}
// try to unmarshal JSON data into FilterTypeRegex
err = json.Unmarshal(data, &dst.FilterTypeRegex);
if err == nil {
jsonFilterTypeRegex, _ := json.Marshal(dst.FilterTypeRegex)
if string(jsonFilterTypeRegex) == "{}" { // empty struct
dst.FilterTypeRegex = nil
} else {
return nil // data stored in dst.FilterTypeRegex, return on the first match
}
} else {
dst.FilterTypeRegex = nil
}
return fmt.Errorf("data failed to match schemas in anyOf(FilterAny)")
}
// Marshal data from the first non-nil pointers in the struct to JSON
func (src *FilterAny) MarshalJSON() ([]byte, error) {
if src.FilterTypeRange != nil {
return json.Marshal(&src.FilterTypeRange)
}
if src.FilterTypeRegex != nil {
return json.Marshal(&src.FilterTypeRegex)
}
return nil, nil // no data in anyOf schemas
}
func (src FilterAny) ToMap() (map[string]interface{}, error) {
if src.FilterTypeRange != nil {
return src.FilterTypeRange.ToMap()
}
if src.FilterTypeRegex != nil {
return src.FilterTypeRegex.ToMap()
}
return nil, nil // no data in anyOf schemas
}
type NullableFilterAny struct {
value *FilterAny
isSet bool
}
func (v NullableFilterAny) Get() *FilterAny {
return v.value
}
func (v *NullableFilterAny) Set(val *FilterAny) {
v.value = val
v.isSet = true
}
func (v NullableFilterAny) IsSet() bool {
return v.isSet
}
func (v *NullableFilterAny) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableFilterAny(val *FilterAny) *NullableFilterAny {
return &NullableFilterAny{value: val, isSet: true}
}
func (v NullableFilterAny) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableFilterAny) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@ -0,0 +1,205 @@
/*
OpenAPI Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
API version: 1.0.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package petstore
import (
"encoding/json"
"fmt"
)
// checks if the FilterTypeRange type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &FilterTypeRange{}
// FilterTypeRange struct for FilterTypeRange
type FilterTypeRange struct {
Type string `json:"type"`
Data []string `json:"data,omitempty"`
AdditionalProperties map[string]interface{}
}
type _FilterTypeRange FilterTypeRange
// NewFilterTypeRange instantiates a new FilterTypeRange object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewFilterTypeRange(type_ string) *FilterTypeRange {
this := FilterTypeRange{}
this.Type = type_
return &this
}
// NewFilterTypeRangeWithDefaults instantiates a new FilterTypeRange object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewFilterTypeRangeWithDefaults() *FilterTypeRange {
this := FilterTypeRange{}
return &this
}
// GetType returns the Type field value
func (o *FilterTypeRange) GetType() string {
if o == nil {
var ret string
return ret
}
return o.Type
}
// GetTypeOk returns a tuple with the Type field value
// and a boolean to check if the value has been set.
func (o *FilterTypeRange) GetTypeOk() (*string, bool) {
if o == nil {
return nil, false
}
return &o.Type, true
}
// SetType sets field value
func (o *FilterTypeRange) SetType(v string) {
o.Type = v
}
// GetData returns the Data field value if set, zero value otherwise.
func (o *FilterTypeRange) GetData() []string {
if o == nil || IsNil(o.Data) {
var ret []string
return ret
}
return o.Data
}
// GetDataOk returns a tuple with the Data field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *FilterTypeRange) GetDataOk() ([]string, bool) {
if o == nil || IsNil(o.Data) {
return nil, false
}
return o.Data, true
}
// HasData returns a boolean if a field has been set.
func (o *FilterTypeRange) HasData() bool {
if o != nil && !IsNil(o.Data) {
return true
}
return false
}
// SetData gets a reference to the given []string and assigns it to the Data field.
func (o *FilterTypeRange) SetData(v []string) {
o.Data = v
}
func (o FilterTypeRange) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o FilterTypeRange) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
toSerialize["type"] = o.Type
if !IsNil(o.Data) {
toSerialize["data"] = o.Data
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *FilterTypeRange) UnmarshalJSON(data []byte) (err error) {
// This validates that all required properties are included in the JSON object
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
"type",
}
allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties)
if err != nil {
return err;
}
for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists {
return fmt.Errorf("no value given for required property %v", requiredProperty)
}
}
varFilterTypeRange := _FilterTypeRange{}
err = json.Unmarshal(data, &varFilterTypeRange)
if err != nil {
return err
}
*o = FilterTypeRange(varFilterTypeRange)
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(data, &additionalProperties); err == nil {
delete(additionalProperties, "type")
delete(additionalProperties, "data")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableFilterTypeRange struct {
value *FilterTypeRange
isSet bool
}
func (v NullableFilterTypeRange) Get() *FilterTypeRange {
return v.value
}
func (v *NullableFilterTypeRange) Set(val *FilterTypeRange) {
v.value = val
v.isSet = true
}
func (v NullableFilterTypeRange) IsSet() bool {
return v.isSet
}
func (v *NullableFilterTypeRange) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableFilterTypeRange(val *FilterTypeRange) *NullableFilterTypeRange {
return &NullableFilterTypeRange{value: val, isSet: true}
}
func (v NullableFilterTypeRange) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableFilterTypeRange) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@ -0,0 +1,205 @@
/*
OpenAPI Petstore
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
API version: 1.0.0
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package petstore
import (
"encoding/json"
"fmt"
)
// checks if the FilterTypeRegex type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &FilterTypeRegex{}
// FilterTypeRegex struct for FilterTypeRegex
type FilterTypeRegex struct {
Type string `json:"type"`
Regex *string `json:"regex,omitempty"`
AdditionalProperties map[string]interface{}
}
type _FilterTypeRegex FilterTypeRegex
// NewFilterTypeRegex instantiates a new FilterTypeRegex object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewFilterTypeRegex(type_ string) *FilterTypeRegex {
this := FilterTypeRegex{}
this.Type = type_
return &this
}
// NewFilterTypeRegexWithDefaults instantiates a new FilterTypeRegex object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewFilterTypeRegexWithDefaults() *FilterTypeRegex {
this := FilterTypeRegex{}
return &this
}
// GetType returns the Type field value
func (o *FilterTypeRegex) GetType() string {
if o == nil {
var ret string
return ret
}
return o.Type
}
// GetTypeOk returns a tuple with the Type field value
// and a boolean to check if the value has been set.
func (o *FilterTypeRegex) GetTypeOk() (*string, bool) {
if o == nil {
return nil, false
}
return &o.Type, true
}
// SetType sets field value
func (o *FilterTypeRegex) SetType(v string) {
o.Type = v
}
// GetRegex returns the Regex field value if set, zero value otherwise.
func (o *FilterTypeRegex) GetRegex() string {
if o == nil || IsNil(o.Regex) {
var ret string
return ret
}
return *o.Regex
}
// GetRegexOk returns a tuple with the Regex field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *FilterTypeRegex) GetRegexOk() (*string, bool) {
if o == nil || IsNil(o.Regex) {
return nil, false
}
return o.Regex, true
}
// HasRegex returns a boolean if a field has been set.
func (o *FilterTypeRegex) HasRegex() bool {
if o != nil && !IsNil(o.Regex) {
return true
}
return false
}
// SetRegex gets a reference to the given string and assigns it to the Regex field.
func (o *FilterTypeRegex) SetRegex(v string) {
o.Regex = &v
}
func (o FilterTypeRegex) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o FilterTypeRegex) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
toSerialize["type"] = o.Type
if !IsNil(o.Regex) {
toSerialize["regex"] = o.Regex
}
for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return toSerialize, nil
}
func (o *FilterTypeRegex) UnmarshalJSON(data []byte) (err error) {
// This validates that all required properties are included in the JSON object
// by unmarshalling the object into a generic map with string keys and checking
// that every required field exists as a key in the generic map.
requiredProperties := []string{
"type",
}
allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties)
if err != nil {
return err;
}
for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists {
return fmt.Errorf("no value given for required property %v", requiredProperty)
}
}
varFilterTypeRegex := _FilterTypeRegex{}
err = json.Unmarshal(data, &varFilterTypeRegex)
if err != nil {
return err
}
*o = FilterTypeRegex(varFilterTypeRegex)
additionalProperties := make(map[string]interface{})
if err = json.Unmarshal(data, &additionalProperties); err == nil {
delete(additionalProperties, "type")
delete(additionalProperties, "regex")
o.AdditionalProperties = additionalProperties
}
return err
}
type NullableFilterTypeRegex struct {
value *FilterTypeRegex
isSet bool
}
func (v NullableFilterTypeRegex) Get() *FilterTypeRegex {
return v.value
}
func (v *NullableFilterTypeRegex) Set(val *FilterTypeRegex) {
v.value = val
v.isSet = true
}
func (v NullableFilterTypeRegex) IsSet() bool {
return v.isSet
}
func (v *NullableFilterTypeRegex) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableFilterTypeRegex(val *FilterTypeRegex) *NullableFilterTypeRegex {
return &NullableFilterTypeRegex{value: val, isSet: true}
}
func (v NullableFilterTypeRegex) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableFilterTypeRegex) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

View File

@ -15,6 +15,7 @@ import (
"fmt"
)
// GmFruit struct for GmFruit
type GmFruit struct {
Apple *Apple
@ -66,6 +67,7 @@ func (src *GmFruit) MarshalJSON() ([]byte, error) {
return nil, nil // no data in anyOf schemas
}
type NullableGmFruit struct {
value *GmFruit
isSet bool

View File

@ -8,8 +8,8 @@ require (
cloud.google.com/go/compute v1.20.1 // indirect
github.com/stretchr/testify v1.9.0
go-petstore v0.0.0-00010101000000-000000000000
golang.org/x/net v0.25.0 // indirect
golang.org/x/oauth2 v0.20.0
golang.org/x/net v0.27.0 // indirect
golang.org/x/oauth2 v0.21.0
google.golang.org/protobuf v1.31.0 // indirect
gopkg.in/validator.v2 v2.0.1 // indirect
)

View File

@ -733,6 +733,7 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
@ -892,9 +893,11 @@ golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -952,6 +955,9 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@ -1026,11 +1032,14 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -1076,6 +1085,8 @@ golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ=
golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o=
golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo=
golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -1093,6 +1104,9 @@ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -1173,9 +1187,12 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@ -1187,9 +1204,11 @@ golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -1207,8 +1226,10 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@ -1276,6 +1297,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=