@@ -95,17 +95,7 @@ public void enhanceParameters(Map<String, Object> parameters, Map<String, Object
9595 AlgoliaGoGenerator .canFlattenBody (operation )
9696 ) {
9797 // flatten the body params by skipping one level
98- Map <String , Object > bodyParams = (Map <String , Object >) param .getValue ();
99- for (String nestedParam : bodyParams .keySet ()) {
100- for (CodegenProperty prop : operation .bodyParam .getVars ()) {
101- if (prop .baseName .equals (nestedParam )) {
102- Map <String , Object > paramWithType = traverseParams (prop .baseName , bodyParams .get (nestedParam ), prop , "" , 0 , false );
103- parametersWithDataType .add (paramWithType );
104- parametersWithDataTypeMap .put ((String ) paramWithType .get ("key" ), paramWithType );
105- break ;
106- }
107- }
108- }
98+ flattenBodyParams ((Map <String , Object >) param .getValue (), operation , parametersWithDataType );
10999 } else {
110100 Map <String , Object > paramWithType = traverseParams (param .getKey (), param .getValue (), specParam , "" , 0 , false );
111101 parametersWithDataType .add (paramWithType );
@@ -115,16 +105,7 @@ public void enhanceParameters(Map<String, Object> parameters, Map<String, Object
115105 }
116106 } else if (language .equals ("go" ) && parameters != null && operation .bodyParam .getVars ().size () > 0 ) {
117107 // also flatten when the body is the only parameter
118- for (String nestedParam : parameters .keySet ()) {
119- for (CodegenProperty prop : operation .bodyParam .getVars ()) {
120- if (prop .baseName .equals (nestedParam )) {
121- Map <String , Object > paramWithType = traverseParams (prop .baseName , parameters .get (nestedParam ), prop , "" , 0 , false );
122- parametersWithDataType .add (paramWithType );
123- parametersWithDataTypeMap .put ((String ) paramWithType .get ("key" ), paramWithType );
124- break ;
125- }
126- }
127- }
108+ flattenBodyParams (parameters , operation , parametersWithDataType );
128109 } else {
129110 Map <String , Object > paramWithType = traverseParams (paramName , parameters , spec , "" , 0 , false );
130111 parametersWithDataType .add (paramWithType );
@@ -142,6 +123,22 @@ private String toJSONWithVar(Map<String, Object> parameters) throws JsonProcessi
142123 return Json .mapper ().writeValueAsString (parameters ).replaceAll ("\" \\ $var: (.*?)\" " , "$1" );
143124 }
144125
126+ private void flattenBodyParams (
127+ Map <String , Object > parameters ,
128+ CodegenOperation operation ,
129+ List <Map <String , Object >> parametersWithDataType
130+ ) throws CTSException {
131+ for (String nestedParam : parameters .keySet ()) {
132+ for (CodegenProperty prop : operation .bodyParam .getVars ()) {
133+ if (prop .baseName .equals (nestedParam )) {
134+ Map <String , Object > paramWithType = traverseParams (prop .baseName , parameters .get (nestedParam ), prop , "" , 0 , false );
135+ parametersWithDataType .add (paramWithType );
136+ break ;
137+ }
138+ }
139+ }
140+ }
141+
145142 private Map <String , Object > traverseParams (
146143 String paramName ,
147144 Object param ,
0 commit comments