@@ -271,39 +271,50 @@ public override CodeGenOutput GenerateOutput(ServiceInfo service)
271271 code . WriteLine ( "const status = result.response.status;" ) ;
272272 var responseValueType = $ "I{ capMethodName } Response";
273273 code . WriteLine ( "let value" + IfTypeScript ( $ ": { responseValueType } | null") + " = null;" ) ;
274- using ( code . Block ( "if (result.json) {" , "}" ) )
274+ var validResponses = httpMethodInfo . ValidResponses ;
275+ var elsePrefix = "" ;
276+ foreach ( var validResponse in validResponses )
275277 {
276- var validResponses = httpMethodInfo . ValidResponses ;
277- var elsePrefix = "" ;
278- foreach ( var validResponse in validResponses )
279- {
280- var statusCodeAsString = ( ( int ) validResponse . StatusCode ) . ToString ( CultureInfo . InvariantCulture ) ;
281- code . WriteLine ( $ "{ elsePrefix } if (status === { statusCodeAsString } ) {{") ;
282- elsePrefix = "else " ;
278+ var statusCodeAsString = ( ( int ) validResponse . StatusCode ) . ToString ( CultureInfo . InvariantCulture ) ;
279+ code . WriteLine ( $ "{ elsePrefix } if (status === { statusCodeAsString } ) {{") ;
280+ elsePrefix = "else " ;
283281
284- using ( code . Indent ( ) )
282+ using ( code . Indent ( ) )
283+ {
284+ var bodyField = validResponse . BodyField ;
285+ if ( bodyField != null )
285286 {
286- var bodyField = validResponse . BodyField ;
287- if ( bodyField != null )
288- {
289- var responseBodyFieldName = bodyField . ServiceField . Name ;
287+ var responseBodyFieldName = bodyField . ServiceField . Name ;
290288
291- var bodyFieldType = service . GetFieldType ( bodyField . ServiceField ) ! ;
292- if ( bodyFieldType . Kind == ServiceTypeKind . Boolean )
293- code . WriteLine ( $ "value = {{ { responseBodyFieldName } : true }};") ;
294- else
289+ var bodyFieldType = service . GetFieldType ( bodyField . ServiceField ) ! ;
290+ if ( bodyFieldType . Kind == ServiceTypeKind . Boolean )
291+ {
292+ code . WriteLine ( $ "value = {{ { responseBodyFieldName } : true }};") ;
293+ }
294+ else
295+ {
296+ using ( code . Block ( "if (result.json) {" , "}" ) )
297+ {
295298 code . WriteLine ( $ "value = {{ { responseBodyFieldName } : result.json }}" + IfTypeScript ( $ " as { responseValueType } ") + ";" ) ;
299+ }
300+ }
301+ }
302+ else
303+ {
304+ if ( validResponse . NormalFields ! . Count == 0 )
305+ {
306+ code . WriteLine ( "value = {};" ) ;
296307 }
297308 else
298309 {
299- if ( validResponse . NormalFields ! . Count == 0 )
300- code . WriteLine ( "value = {};" ) ;
301- else
310+ using ( code . Block ( "if (result.json) {" , "}" ) )
311+ {
302312 code . WriteLine ( "value = result.json" + IfTypeScript ( $ " as { responseValueType } | null") + ";" ) ;
313+ }
303314 }
304315 }
305- code . WriteLine ( "}" ) ;
306316 }
317+ code . WriteLine ( "}" ) ;
307318 }
308319
309320 using ( code . Block ( "if (!value) {" , "}" ) )
0 commit comments