Skip to content

Commit a4aac2a

Browse files
committed
[R] check optional parametrs for null before evaluating param conditions
1 parent f1a0935 commit a4aac2a

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

modules/openapi-generator/src/main/resources/r/api.mustache

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@
207207
{{/requiredParams}}
208208
{{#allParams}}
209209
{{#maxLength}}
210-
if (nchar(`{{paramName}}`) > {{maxLength}}) {
210+
if (!is.null(`{{paramName}}`) && nchar(`{{paramName}}`) > {{maxLength}}) {
211211
{{#useDefaultExceptionHandling}}
212212
stop("Invalid length for `{{paramName}}` when calling {{classname}}${{operationId}}, must be smaller than or equal to {{maxLength}}.")
213213
{{/useDefaultExceptionHandling}}
@@ -220,7 +220,7 @@
220220
}
221221
{{/maxLength}}
222222
{{#minLength}}
223-
if (nchar(`{{paramName}}`) < {{minLength}}) {
223+
if (!is.null(`{{paramName}}`) && nchar(`{{paramName}}`) < {{minLength}}) {
224224
{{#useDefaultExceptionHandling}}
225225
stop("Invalid length for `{{paramName}}` when calling {{classname}}${{operationId}}, must be bigger than or equal to {{minLength}}.")
226226
{{/useDefaultExceptionHandling}}
@@ -233,7 +233,7 @@
233233
}
234234
{{/minLength}}
235235
{{#maximum}}
236-
if (`{{paramName}}` >{{#exclusiveMaximum}}={{/exclusiveMaximum}} {{maximum}}) {
236+
if (!is.null(`{{paramName}}`) && `{{paramName}}` > {{#exclusiveMaximum}}={{/exclusiveMaximum}} {{maximum}}) {
237237
{{#useDefaultExceptionHandling}}
238238
stop("Invalid value for `{{paramName}}` when calling {{classname}}${{operationId}}, must be smaller than {{^exclusiveMaximum}}or equal to {{/exclusiveMaximum}}{{maximum}}.")
239239
{{/useDefaultExceptionHandling}}
@@ -246,7 +246,7 @@
246246
}
247247
{{/maximum}}
248248
{{#minimum}}
249-
if (`{{paramName}}` <{{#exclusiveMinimum}}={{/exclusiveMinimum}} {{minimum}}) {
249+
if (!is.null(`{{paramName}}`) && `{{paramName}}` < {{#exclusiveMinimum}}={{/exclusiveMinimum}} {{minimum}}) {
250250
{{#useDefaultExceptionHandling}}
251251
stop("Invalid value for `{{paramName}}` when calling {{classname}}${{operationId}}, must be bigger than {{^exclusiveMinimum}}or equal to {{/exclusiveMinimum}}{{minimum}}.")
252252
{{/useDefaultExceptionHandling}}
@@ -259,7 +259,7 @@
259259
}
260260
{{/minimum}}
261261
{{#pattern}}
262-
if (!str_detect(`{{paramName}}`, "{{{pattern}}}")) {
262+
if (!is.null(`{{paramName}}`) && !stringr::str_detect(`{{paramName}}`, "{{{pattern}}}")) {
263263
{{#useDefaultExceptionHandling}}
264264
stop("Invalid value for `{{paramName}}` when calling {{classname}}${{operationId}}, must conform to the pattern {{{pattern}}}.")
265265
{{/useDefaultExceptionHandling}}
@@ -272,7 +272,7 @@
272272
}
273273
{{/pattern}}
274274
{{#maxItems}}
275-
if (length(`{{paramName}}`) > {{maxItems}}) {
275+
if (!is.null(`{{paramName}}`) && length(`{{paramName}}`) > {{maxItems}}) {
276276
{{#useDefaultExceptionHandling}}
277277
stop("Invalid length for `{{paramName}}` when calling {{classname}}${{operationId}}, number of items must be less than or equal to {{maxItems}}.")
278278
{{/useDefaultExceptionHandling}}
@@ -285,7 +285,7 @@
285285
}
286286
{{/maxItems}}
287287
{{#minItems}}
288-
if (length(`{{paramName}}`) < {{minItems}}) {
288+
if (!is.null(`{{paramName}}`) && length(`{{paramName}}`) < {{minItems}}) {
289289
{{#useDefaultExceptionHandling}}
290290
stop("Invalid length for `{{paramName}}` when calling {{classname}}${{operationId}}, number of items must be greater than or equal to {{minItems}}.")
291291
{{/useDefaultExceptionHandling}}
@@ -307,7 +307,7 @@
307307
{{#isArray}}
308308
{{#uniqueItems}}
309309
# check if items are unique
310-
if (!identical(`{{{paramName}}}`, unique(`{{{paramName}}}`))) {
310+
if (!is.null(`{{paramName}}`) && !identical(`{{{paramName}}}`, unique(`{{{paramName}}}`))) {
311311
{{#useDefaultExceptionHandling}}
312312
stop("Invalid value for {{{paramName}}} when calling {{classname}}${{operationId}}. Items must be unique.")
313313
{{/useDefaultExceptionHandling}}

0 commit comments

Comments
 (0)