Skip to content

Commit bab873c

Browse files
committed
Handle void 204 response
1 parent 8ba1efe commit bab873c

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/main/java/io/dinject/javalin/generator/MethodReader.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
import javax.lang.model.element.ExecutableElement;
1818
import javax.lang.model.element.VariableElement;
19+
import javax.lang.model.type.TypeKind;
20+
import javax.lang.model.type.TypeMirror;
1921
import java.util.ArrayList;
2022
import java.util.List;
2123

@@ -117,13 +119,29 @@ void addMeta(ProcessingContext ctx) {
117119
operation.setResponses(responses);
118120

119121
ApiResponse response = new ApiResponse();
120-
responses.addApiResponse(ApiResponses.DEFAULT, response);
121122
response.setDescription(javadoc.getReturnDescription());
122123

123-
response.setContent(ctx.createContent(element.getReturnType(), "application/json"));
124+
TypeMirror returnType = element.getReturnType();
125+
if (isNoResponse(returnType)) {
126+
if (isEmpty(response.getDescription())) {
127+
response.setDescription("No content");
128+
}
129+
responses.addApiResponse("204", response);
130+
} else {
131+
responses.addApiResponse(ApiResponses.DEFAULT, response);
132+
response.setContent(ctx.createContent(returnType, "application/json"));
133+
}
124134
}
125135
}
126136

137+
private boolean isEmpty(String value) {
138+
return value == null || value.isEmpty();
139+
}
140+
141+
private boolean isNoResponse(TypeMirror returnType) {
142+
return returnType.getKind() == TypeKind.VOID;
143+
}
144+
127145
/**
128146
* Return true if the method is included in documentation.
129147
*/

0 commit comments

Comments
 (0)