Skip to content

Commit ee2c1c1

Browse files
committed
simplify
1 parent cc77339 commit ee2c1c1

File tree

2 files changed

+65
-57
lines changed

2 files changed

+65
-57
lines changed

R/whatWQPdata.R

Lines changed: 52 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,27 @@ whatWQPsamples <- function(...,
3535
} else {
3636
baseURL <- httr2::request(pkg.env[["ActivityWQX3"]])
3737
}
38-
38+
POST = FALSE
3939
if(!legacy){
4040
baseURL <- httr2::req_url_query(baseURL, !!!values,
4141
.multi = "explode")
4242
} else {
4343
if("siteid" %in% names(values)){
4444
if(length(values[["siteid"]]) > 1){
4545
sites <- values[["siteid"]]
46-
baseURL <- httr2::req_url_query(baseURL,
47-
siteid = sites,
48-
.multi = function(x) paste0(x, collapse = ";"))
46+
POST = nchar(paste0(sites, collapse = "")) > 2048
47+
48+
baseURL <- get_or_post(baseURL, POST = POST,
49+
siteid = sites,
50+
.multi = function(x) paste0(x, collapse = ";"))
51+
4952
values <- values[names(values) != "siteid"]
5053
}
5154
}
52-
baseURL <- httr2::req_url_query(baseURL, !!!values,
53-
.multi = "explode")
55+
baseURL <- get_or_post(baseURL,
56+
POST = POST,
57+
!!!values,
58+
.multi = "explode")
5459
}
5560

5661
retval <- importWQP(baseURL,
@@ -97,21 +102,27 @@ whatWQPmetrics <- function(...,
97102
if ("service" %in% names(values)) {
98103
values <- values[!(names(values) %in% "service")]
99104
}
100-
105+
POST = FALSE
101106
baseURL <- httr2::request(pkg.env[["ActivityMetric"]])
102107

103108
if("siteid" %in% names(values)){
104109
if(length(values[["siteid"]]) > 1){
105110
sites <- values[["siteid"]]
106-
baseURL <- httr2::req_url_query(baseURL,
107-
siteid = sites,
108-
.multi = function(x) paste0(x, collapse = ";"))
111+
POST = nchar(paste0(sites, collapse = "")) > 2048
112+
113+
baseURL <- get_or_post(baseURL, POST = POST,
114+
siteid = sites,
115+
.multi = function(x) paste0(x, collapse = ";"))
116+
109117
values <- values[names(values) != "siteid"]
110118
}
111119
}
112-
baseURL <- httr2::req_url_query(baseURL, !!!values,
113-
.multi = "explode")
114120

121+
baseURL <- get_or_post(baseURL,
122+
POST = POST,
123+
!!!values,
124+
.multi = "explode")
125+
115126
withCallingHandlers(
116127
{
117128
retval <- importWQP(baseURL,
@@ -124,6 +135,7 @@ whatWQPmetrics <- function(...,
124135
}
125136
}
126137
)
138+
127139
if(is.null(retval)){
128140
return(NULL)
129141
} else {
@@ -200,40 +212,31 @@ whatWQPdata <- function(...,
200212
values <- values[!(names(values) %in% c("tz", "service", "mimeType"))]
201213
}
202214
POST = FALSE
215+
203216
baseURL <- httr2::request(pkg.env[["Station"]])
204217

205218
if("siteid" %in% names(values)){
206219
if(length(values[["siteid"]]) > 1){
207220
sites <- values[["siteid"]]
208-
if(nchar(paste0(sites, collapse = "")) > 2048){
209-
POST = TRUE
210-
baseURL <- httr2::req_body_form(baseURL,
211-
siteid = sites,
212-
.multi = function(x) paste0(x, collapse = ";"))
213-
} else {
214-
baseURL <- httr2::req_url_query(baseURL,
215-
siteid = sites,
216-
.multi = function(x) paste0(x, collapse = ";"))
217-
}
221+
222+
POST = nchar(paste0(sites, collapse = "")) > 2048
223+
224+
baseURL <- get_or_post(baseURL, POST = POST,
225+
siteid = sites,
226+
.multi = function(x) paste0(x, collapse = ";"))
227+
218228
values <- values[names(values) != "siteid"]
219229
}
220230
}
231+
232+
baseURL <- get_or_post(req = baseURL,
233+
POST = POST,
234+
!!!values,
235+
.multi = "explode")
221236

222-
223-
224-
if(POST){
225-
baseURL <- httr2::req_body_form(baseURL,
226-
!!!values,
227-
.multi = "explode")
228-
baseURL <- httr2::req_body_form(baseURL,
229-
mimeType = "geojson")
230-
} else {
231-
baseURL <- httr2::req_url_query(baseURL,
232-
!!!values,
233-
.multi = "explode")
234-
baseURL <- httr2::req_url_query(baseURL,
235-
mimeType = "geojson")
236-
}
237+
baseURL <- get_or_post(baseURL,
238+
POST = POST,
239+
mimeType = "geojson")
237240

238241
# Not sure if there's a geojson option with WQX3
239242
wqp_message()
@@ -313,3 +316,15 @@ whatWQPdata <- function(...,
313316
attr(y, "url") <- baseURL
314317
return(y)
315318
}
319+
320+
get_or_post <- function(req, POST = FALSE, ...){
321+
322+
if(POST){
323+
req <- httr2::req_body_form(req, ...)
324+
325+
} else {
326+
req <- httr2::req_url_query(req, ...)
327+
}
328+
return(req)
329+
}
330+

R/whatWQPsites.R

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,16 @@ whatWQPsites <- function(..., legacy = TRUE, convertType = TRUE) {
5757

5858
if(legacy){
5959
baseURL <- httr2::request(pkg.env[["Station"]])
60+
6061
if("siteid" %in% names(values)){
6162
if(length(values[["siteid"]]) > 1){
6263
sites <- values[["siteid"]]
63-
if(nchar(paste0(sites, collapse = "")) > 2048){
64-
POST = TRUE
65-
baseURL <- httr2::req_body_form(baseURL,
66-
siteid = sites,
67-
.multi = function(x) paste0(x, collapse = ";"))
68-
} else {
69-
baseURL <- httr2::req_url_query(baseURL,
70-
siteid = sites,
71-
.multi = function(x) paste0(x, collapse = ";"))
72-
}
64+
POST = nchar(paste0(sites, collapse = "")) > 2048
65+
66+
baseURL <- get_or_post(baseURL,
67+
POST = POST,
68+
siteid = sites,
69+
.multi = function(x) paste0(x, collapse = ";"))
7370

7471
values <- values[names(values) != "siteid"]
7572
}
@@ -78,16 +75,12 @@ whatWQPsites <- function(..., legacy = TRUE, convertType = TRUE) {
7875
} else {
7976
baseURL <- httr2::request(pkg.env[["StationWQX3"]])
8077
}
81-
82-
if(POST){
83-
baseURL <- httr2::req_body_form(baseURL,
84-
!!!values,
85-
.multi = "explode")
86-
} else {
87-
baseURL <- httr2::req_url_query(baseURL,
88-
!!!values,
89-
.multi = "explode")
90-
}
78+
79+
baseURL <- get_or_post(baseURL,
80+
POST = POST,
81+
!!!values,
82+
.multi = "explode")
83+
9184

9285
retval <- importWQP(baseURL, convertType = convertType)
9386

0 commit comments

Comments
 (0)