Skip to content

Commit ee83a64

Browse files
committed
FIX check for required query parameters for services
The current template does not enforce the presence of required query parameters. The change in the template allows to throw a runtime exception for missing required parameters. Optional query params are added next to the required params with the existing null check.
1 parent 3b93d4c commit ee83a64

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

templates-v7/libraries/jersey3/api.mustache

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,24 @@ public class {{classname}} extends Service {
7070
{{#hasQueryParams}}
7171
//Add query params
7272
Map<String, String> queryParams = new HashMap<>();
73+
74+
{{! Add first all required query params }}
7375
{{#queryParams}}
74-
if ({{{paramName}}} != null) {
76+
{{#required}}
77+
if ({{{paramName}}} == null) {
78+
throw new IllegalArgumentException("Please provide the {{{paramName}}} query parameter");
79+
}
7580
queryParams.put("{{baseName}}", {{{paramName}}}{{^isString}}.toString(){{/isString}});
81+
{{/required}}
82+
{{/queryParams}}
83+
84+
{{! Then, add all the optional query params }}
85+
{{#queryParams}}
86+
{{^required}}
87+
if ({{{paramName}}} != null) {
88+
queryParams.put("{{baseName}}", {{{paramName}}}{{^isString}}.toString(){{/isString}});
7689
}
90+
{{/required}}
7791
{{/queryParams}}
7892

7993
{{/hasQueryParams}}

0 commit comments

Comments
 (0)