Skip to content

Commit 396c4c6

Browse files
authored
[R] fix error handling in the R client (#22704)
* fix error handling in the R client * adjust logic for avoiding logical vectors in a conditional statement
1 parent 428d483 commit 396c4c6

File tree

10 files changed

+204
-95
lines changed

10 files changed

+204
-95
lines changed

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@
150150
if (typeof(stream_callback) == "closure") { # return void if streaming is enabled
151151
return(invisible(NULL))
152152
}
153-
154153
{{/vendorExtensions.x-streaming}}
155154
if (local_var_response$status_code >= 200 && local_var_response$status_code <= 299) {
156155
return(local_var_response$content)
@@ -561,7 +560,7 @@
561560
self$api_client$WriteFile(local_var_resp, data_file)
562561
}
563562
564-
ApiResponse$new(content,resp)
563+
ApiResponse$new(content = content, response = resp, status_code = local_var_resp$status_code)
565564
{{/isPrimitiveType}}
566565
{{^isPrimitiveType}}
567566
# save response in a file
@@ -609,7 +608,9 @@
609608
{{/useRlangExceptionHandling}}
610609
{{/returnExceptionOnFailure}}
611610
{{^returnExceptionOnFailure}}
612-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
611+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
612+
response = local_var_resp,
613+
status_code = local_var_resp$status_code)
613614
{{/returnExceptionOnFailure}}
614615
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
615616
{{#returnExceptionOnFailure}}
@@ -626,7 +627,9 @@
626627
{{/useRlangExceptionHandling}}
627628
{{/returnExceptionOnFailure}}
628629
{{^returnExceptionOnFailure}}
629-
ApiResponse$new("API client error", local_var_resp)
630+
ApiResponse$new(content = "API client error",
631+
response = local_var_resp,
632+
status_code = local_var_resp$status_code)
630633
{{/returnExceptionOnFailure}}
631634
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
632635
{{#returnExceptionOnFailure}}
@@ -643,7 +646,7 @@
643646
{{/useRlangExceptionHandling}}
644647
{{/returnExceptionOnFailure}}
645648
{{^returnExceptionOnFailure}}
646-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
649+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
647650
local_var_resp$response <- "API server error"
648651
}
649652
return(local_var_resp)

samples/client/echo_api/r/R/auth_api.R

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,15 @@ AuthApi <- R6::R6Class(
148148

149149
local_var_error_msg <- local_var_resp$response_as_text()
150150
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
151-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
151+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
152+
response = local_var_resp,
153+
status_code = local_var_resp$status_code)
152154
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
153-
ApiResponse$new("API client error", local_var_resp)
155+
ApiResponse$new(content = "API client error",
156+
response = local_var_resp,
157+
status_code = local_var_resp$status_code)
154158
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
155-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
159+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
156160
local_var_resp$response <- "API server error"
157161
}
158162
return(local_var_resp)
@@ -239,11 +243,15 @@ AuthApi <- R6::R6Class(
239243

240244
local_var_error_msg <- local_var_resp$response_as_text()
241245
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
242-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
246+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
247+
response = local_var_resp,
248+
status_code = local_var_resp$status_code)
243249
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
244-
ApiResponse$new("API client error", local_var_resp)
250+
ApiResponse$new(content = "API client error",
251+
response = local_var_resp,
252+
status_code = local_var_resp$status_code)
245253
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
246-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
254+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
247255
local_var_resp$response <- "API server error"
248256
}
249257
return(local_var_resp)

samples/client/echo_api/r/R/body_api.R

Lines changed: 70 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -250,11 +250,15 @@ BodyApi <- R6::R6Class(
250250

251251
local_var_error_msg <- local_var_resp$response_as_text()
252252
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
253-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
253+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
254+
response = local_var_resp,
255+
status_code = local_var_resp$status_code)
254256
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
255-
ApiResponse$new("API client error", local_var_resp)
257+
ApiResponse$new(content = "API client error",
258+
response = local_var_resp,
259+
status_code = local_var_resp$status_code)
256260
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
257-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
261+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
258262
local_var_resp$response <- "API server error"
259263
}
260264
return(local_var_resp)
@@ -349,11 +353,15 @@ BodyApi <- R6::R6Class(
349353

350354
local_var_error_msg <- local_var_resp$response_as_text()
351355
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
352-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
356+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
357+
response = local_var_resp,
358+
status_code = local_var_resp$status_code)
353359
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
354-
ApiResponse$new("API client error", local_var_resp)
360+
ApiResponse$new(content = "API client error",
361+
response = local_var_resp,
362+
status_code = local_var_resp$status_code)
355363
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
356-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
364+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
357365
local_var_resp$response <- "API server error"
358366
}
359367
return(local_var_resp)
@@ -447,11 +455,15 @@ BodyApi <- R6::R6Class(
447455

448456
local_var_error_msg <- local_var_resp$response_as_text()
449457
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
450-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
458+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
459+
response = local_var_resp,
460+
status_code = local_var_resp$status_code)
451461
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
452-
ApiResponse$new("API client error", local_var_resp)
462+
ApiResponse$new(content = "API client error",
463+
response = local_var_resp,
464+
status_code = local_var_resp$status_code)
453465
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
454-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
466+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
455467
local_var_resp$response <- "API server error"
456468
}
457469
return(local_var_resp)
@@ -541,11 +553,15 @@ BodyApi <- R6::R6Class(
541553

542554
local_var_error_msg <- local_var_resp$response_as_text()
543555
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
544-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
556+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
557+
response = local_var_resp,
558+
status_code = local_var_resp$status_code)
545559
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
546-
ApiResponse$new("API client error", local_var_resp)
560+
ApiResponse$new(content = "API client error",
561+
response = local_var_resp,
562+
status_code = local_var_resp$status_code)
547563
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
548-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
564+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
549565
local_var_resp$response <- "API server error"
550566
}
551567
return(local_var_resp)
@@ -640,11 +656,15 @@ BodyApi <- R6::R6Class(
640656

641657
local_var_error_msg <- local_var_resp$response_as_text()
642658
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
643-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
659+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
660+
response = local_var_resp,
661+
status_code = local_var_resp$status_code)
644662
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
645-
ApiResponse$new("API client error", local_var_resp)
663+
ApiResponse$new(content = "API client error",
664+
response = local_var_resp,
665+
status_code = local_var_resp$status_code)
646666
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
647-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
667+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
648668
local_var_resp$response <- "API server error"
649669
}
650670
return(local_var_resp)
@@ -739,11 +759,15 @@ BodyApi <- R6::R6Class(
739759

740760
local_var_error_msg <- local_var_resp$response_as_text()
741761
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
742-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
762+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
763+
response = local_var_resp,
764+
status_code = local_var_resp$status_code)
743765
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
744-
ApiResponse$new("API client error", local_var_resp)
766+
ApiResponse$new(content = "API client error",
767+
response = local_var_resp,
768+
status_code = local_var_resp$status_code)
745769
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
746-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
770+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
747771
local_var_resp$response <- "API server error"
748772
}
749773
return(local_var_resp)
@@ -838,11 +862,15 @@ BodyApi <- R6::R6Class(
838862

839863
local_var_error_msg <- local_var_resp$response_as_text()
840864
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
841-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
865+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
866+
response = local_var_resp,
867+
status_code = local_var_resp$status_code)
842868
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
843-
ApiResponse$new("API client error", local_var_resp)
869+
ApiResponse$new(content = "API client error",
870+
response = local_var_resp,
871+
status_code = local_var_resp$status_code)
844872
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
845-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
873+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
846874
local_var_resp$response <- "API server error"
847875
}
848876
return(local_var_resp)
@@ -937,11 +965,15 @@ BodyApi <- R6::R6Class(
937965

938966
local_var_error_msg <- local_var_resp$response_as_text()
939967
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
940-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
968+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
969+
response = local_var_resp,
970+
status_code = local_var_resp$status_code)
941971
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
942-
ApiResponse$new("API client error", local_var_resp)
972+
ApiResponse$new(content = "API client error",
973+
response = local_var_resp,
974+
status_code = local_var_resp$status_code)
943975
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
944-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
976+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
945977
local_var_resp$response <- "API server error"
946978
}
947979
return(local_var_resp)
@@ -1036,11 +1068,15 @@ BodyApi <- R6::R6Class(
10361068

10371069
local_var_error_msg <- local_var_resp$response_as_text()
10381070
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
1039-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
1071+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
1072+
response = local_var_resp,
1073+
status_code = local_var_resp$status_code)
10401074
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
1041-
ApiResponse$new("API client error", local_var_resp)
1075+
ApiResponse$new(content = "API client error",
1076+
response = local_var_resp,
1077+
status_code = local_var_resp$status_code)
10421078
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
1043-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
1079+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
10441080
local_var_resp$response <- "API server error"
10451081
}
10461082
return(local_var_resp)
@@ -1135,11 +1171,15 @@ BodyApi <- R6::R6Class(
11351171

11361172
local_var_error_msg <- local_var_resp$response_as_text()
11371173
if (local_var_resp$status_code >= 300 && local_var_resp$status_code <= 399) {
1138-
ApiResponse$new(paste("Server returned ", local_var_resp$status_code, " response status code."), local_var_resp)
1174+
ApiResponse$new(content = paste("Server returned ", local_var_resp$status_code, " response status code."),
1175+
response = local_var_resp,
1176+
status_code = local_var_resp$status_code)
11391177
} else if (local_var_resp$status_code >= 400 && local_var_resp$status_code <= 499) {
1140-
ApiResponse$new("API client error", local_var_resp)
1178+
ApiResponse$new(content = "API client error",
1179+
response = local_var_resp,
1180+
status_code = local_var_resp$status_code)
11411181
} else if (local_var_resp$status_code >= 500 && local_var_resp$status_code <= 599) {
1142-
if (is.null(local_var_resp$response) || local_var_resp$response == "") {
1182+
if (is.null(local_var_resp$response) || all(local_var_resp$response == "")) {
11431183
local_var_resp$response <- "API server error"
11441184
}
11451185
return(local_var_resp)

0 commit comments

Comments
 (0)