Skip to content

Commit a2725c2

Browse files
svpacevojtechhabarta
authored andcommitted
revert ResponseEntity handling from #396 (#370)
1 parent 402eed8 commit a2725c2

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

typescript-generator-spring/src/main/java/cz/habarta/typescript/generator/spring/SpringApplicationParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,11 @@ private void parseControllerMethod(JaxrsApplicationParser.Result result, JaxrsAp
236236
}
237237

238238
private Type parseReturnType(Class<?> controllerClass, Method method) {
239-
Type modelReturnType = method.getGenericReturnType();
239+
final Type modelReturnType = method.getGenericReturnType();
240240
if(modelReturnType instanceof TypeVariable) {
241241
return GenericTypeResolver.resolveReturnType(method, controllerClass);
242242
} else if (modelReturnType instanceof ParameterizedType && ((ParameterizedType) modelReturnType).getRawType() == ResponseEntity.class) {
243-
return GenericTypeResolver.resolveReturnTypeArgument(method, ResponseEntity.class);
243+
return ((ParameterizedType) modelReturnType).getActualTypeArguments()[0];
244244
} else {
245245
return modelReturnType;
246246
}

typescript-generator-spring/src/test/java/cz/habarta/typescript/generator/spring/SpringTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import cz.habarta.typescript.generator.TypeScriptGenerator;
99
import cz.habarta.typescript.generator.util.Utils;
1010
import java.lang.reflect.Method;
11+
import java.util.Arrays;
12+
import java.util.List;
1113
import org.junit.Assert;
1214
import org.junit.Test;
1315
import org.springframework.core.annotation.AnnotatedElementUtils;
@@ -207,4 +209,21 @@ public Page<String> post(Pageable page) {
207209
return null;
208210
}
209211
}
212+
213+
@Test
214+
public void testDoubleGenericController() {
215+
final Settings settings = TestUtils.settings();
216+
settings.outputFileType = TypeScriptFileType.implementationFile;
217+
settings.generateSpringApplicationClient = true;
218+
final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(DoubleGenericController.class));
219+
Assert.assertTrue(output.contains(" get(): RestResponse<string[]>"));
220+
}
221+
222+
@RestController
223+
public class DoubleGenericController {
224+
@GetMapping("/generic2")
225+
public ResponseEntity<List<String>> get () {
226+
return ResponseEntity.ok(Arrays.asList( "a" , "b" , "c" ));
227+
}
228+
}
210229
}

0 commit comments

Comments
 (0)