Skip to content

Commit d252438

Browse files
Enum in @QueryParam not generated fix (#266)
1 parent bbb801b commit d252438

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/JaxrsApplicationParser.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ private void parseResourceMethod(Result result, ResourceContext context, Class<?
155155
if (part instanceof PathTemplate.Parameter) {
156156
final PathTemplate.Parameter parameter = (PathTemplate.Parameter) part;
157157
final Type type = context.pathParamTypes.get(parameter.getOriginalName());
158-
pathParams.add(new MethodParameterModel(parameter.getValidName(), type != null ? type : String.class));
158+
final Type paramType = type != null ? type : String.class;
159+
pathParams.add(new MethodParameterModel(parameter.getValidName(), paramType));
160+
foundType(result, paramType, resourceClass, method.getName());
159161
}
160162
}
161163
// query parameters
@@ -164,6 +166,7 @@ private void parseResourceMethod(Result result, ResourceContext context, Class<?
164166
final QueryParam queryParamAnnotation = param.getAnnotation(QueryParam.class);
165167
if (queryParamAnnotation != null) {
166168
queryParams.add(new MethodParameterModel(queryParamAnnotation.value(), param.getParameterizedType()));
169+
foundType(result, param.getParameterizedType(), resourceClass, method.getName());
167170
}
168171
}
169172
// JAX-RS specification - 3.3.2.1 Entity Parameters

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JaxrsApplicationTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,28 @@ public void testGettingValidIdentifierName() {
497497
Assert.assertEquals("a2b3c4", ModelCompiler.getValidIdentifierName("111a2b3c4"));
498498
}
499499

500+
@Test
501+
public void testEnumQueryParam() {
502+
final Settings settings = TestUtils.settings();
503+
settings.generateJaxrsApplicationInterface = true;
504+
final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(EnumQueryParamResource.class));
505+
Assert.assertTrue(output.contains("queryParams?: { target?: TargetEnum; }"));
506+
Assert.assertTrue(output.contains("type TargetEnum = \"Target1\" | \"Target2\""));
507+
}
508+
509+
@Path("enum-query-param")
510+
public static class EnumQueryParamResource {
511+
@GET
512+
@Path("somePath")
513+
public List<String> getFoo(@QueryParam("target") TargetEnum target) {
514+
return Collections.emptyList();
515+
}
516+
}
517+
518+
public enum TargetEnum {
519+
Target1, Target2
520+
}
521+
500522
public static void main(String[] args) {
501523
final ResourceConfig config = new ResourceConfig(NameConflictResource.class);
502524
JdkHttpServerFactory.createHttpServer(URI.create("http://localhost:9998/"), config);

0 commit comments

Comments
 (0)