@@ -209,8 +209,10 @@ pub_covid_hosp_facility <- function(
209
209
cli :: cli_warn(coercion_msg , class = " epidatr__epirange_week_coercion" )
210
210
collection_weeks <- reformat_epirange(collection_weeks , to_type = " day" )
211
211
# Single week date.
212
- } else if ((test_integerish(collection_weeks ) || test_character(collection_weeks )) &&
213
- nchar(collection_weeks ) == 6 ) {
212
+ } else if (
213
+ (test_integerish(collection_weeks ) || test_character(collection_weeks )) &&
214
+ nchar(collection_weeks ) == 6
215
+ ) {
214
216
cli :: cli_warn(coercion_msg , class = " epidatr__single_week_coercion" )
215
217
collection_weeks <- parse_api_week(collection_weeks )
216
218
}
@@ -2094,15 +2096,17 @@ pvt_sensors <- function(
2094
2096
# ' pvt_twitter(
2095
2097
# ' auth = Sys.getenv("SECRET_API_AUTH_TWITTER"),
2096
2098
# ' locations = "CA",
2097
- # ' epiweeks = epirange(201501, 202001)
2099
+ # ' time_type = "week",
2100
+ # ' time_values = epirange(201501, 202001)
2098
2101
# ' )
2099
2102
# ' }
2100
2103
# ' @param auth string. Restricted access key (not the same as API key).
2101
2104
# ' @param locations character. Locations to fetch.
2102
2105
# ' @param ... not used for values, forces later arguments to bind by name
2103
- # ' @param dates [`timeset`]. Dates to fetch. Mutually exclusive with `epiweeks`.
2104
- # ' @param epiweeks [`timeset`]. Epiweeks to fetch. Mutually exclusive with
2105
- # ' `dates`.
2106
+ # ' @param time_type string. The temporal resolution of the data (either "day" or
2107
+ # ' "week", depending on signal).
2108
+ # ' @param time_values [`timeset`]. Dates or epiweeks to fetch. Defaults to all
2109
+ # ' ("*") dates.
2106
2110
# ' @param fetch_args [`fetch_args`]. Additional arguments to pass to `fetch()`.
2107
2111
# ' @return [`tibble::tibble`]
2108
2112
# ' @keywords endpoint
@@ -2111,21 +2115,31 @@ pvt_twitter <- function(
2111
2115
auth ,
2112
2116
locations ,
2113
2117
... ,
2114
- dates = NULL ,
2115
- epiweeks = NULL ,
2118
+ time_type = c( " day " , " week " ) ,
2119
+ time_values = " * " ,
2116
2120
fetch_args = fetch_args_list()) {
2117
2121
rlang :: check_dots_empty()
2118
2122
2123
+ time_type <- match.arg(time_type )
2124
+ if (time_type == " day" ) {
2125
+ dates <- time_values
2126
+ epiweeks <- NULL
2127
+ dates <- get_wildcard_equivalent_dates(dates , " day" )
2128
+ } else {
2129
+ dates <- NULL
2130
+ epiweeks <- time_values
2131
+ epiweeks <- get_wildcard_equivalent_dates(epiweeks , " week" )
2132
+ }
2133
+
2119
2134
assert_character_param(" auth" , auth , len = 1 )
2120
2135
assert_character_param(" locations" , locations )
2136
+ assert_character_param(" time_type" , time_type , len = 1 )
2137
+ assert_timeset_param(" time_values" , time_values )
2121
2138
assert_timeset_param(" dates" , dates , required = FALSE )
2122
2139
assert_timeset_param(" epiweeks" , epiweeks , required = FALSE )
2123
2140
dates <- parse_timeset_input(dates )
2124
2141
epiweeks <- parse_timeset_input(epiweeks )
2125
2142
2126
- if (! xor(is.null(dates ), is.null(epiweeks ))) {
2127
- stop(" exactly one of `dates` and `epiweeks` is required" )
2128
- }
2129
2143
time_field <- if (! is.null(dates )) {
2130
2144
create_epidata_field_info(" date" , " date" )
2131
2145
} else {
@@ -2163,13 +2177,18 @@ pvt_twitter <- function(
2163
2177
# '
2164
2178
# ' @examples
2165
2179
# ' \dontrun{
2166
- # ' pub_wiki(articles = "avian_influenza", epiweeks = epirange(201501, 201601))
2180
+ # ' pub_wiki(
2181
+ # ' articles = "avian_influenza",
2182
+ # ' time_type = "week",
2183
+ # ' time_values = epirange(201501, 201601)
2184
+ # ' )
2167
2185
# ' }
2168
2186
# ' @param articles character. Articles to fetch.
2169
2187
# ' @param ... not used for values, forces later arguments to bind by name
2170
- # ' @param dates [`timeset`]. Dates to fetch. Mutually exclusive with `epiweeks`.
2171
- # ' @param epiweeks [`timeset`]. Epiweeks to fetch. Mutually exclusive with
2172
- # ' `dates`.
2188
+ # ' @param time_type string. The temporal resolution of the data (either "day" or
2189
+ # ' "week", depending on signal).
2190
+ # ' @param time_values [`timeset`]. Dates or epiweeks to fetch. Defaults to all
2191
+ # ' ("*") dates.
2173
2192
# ' @param language string. Language to fetch.
2174
2193
# ' @param hours integer. Optionally, the hours to fetch.
2175
2194
# ' @param fetch_args [`fetch_args`]. Additional arguments to pass to `fetch()`.
@@ -2179,24 +2198,34 @@ pvt_twitter <- function(
2179
2198
pub_wiki <- function (
2180
2199
articles ,
2181
2200
... ,
2182
- dates = NULL ,
2183
- epiweeks = NULL ,
2201
+ time_type = c( " day " , " week " ) ,
2202
+ time_values = " * " ,
2184
2203
hours = NULL ,
2185
2204
language = " en" ,
2186
2205
fetch_args = fetch_args_list()) {
2187
2206
rlang :: check_dots_empty()
2188
2207
2208
+ time_type <- match.arg(time_type )
2209
+ if (time_type == " day" ) {
2210
+ dates <- time_values
2211
+ epiweeks <- NULL
2212
+ dates <- get_wildcard_equivalent_dates(dates , " day" )
2213
+ } else {
2214
+ dates <- NULL
2215
+ epiweeks <- time_values
2216
+ epiweeks <- get_wildcard_equivalent_dates(epiweeks , " week" )
2217
+ }
2218
+
2189
2219
assert_character_param(" articles" , articles )
2220
+ assert_character_param(" time_type" , time_type , len = 1 )
2221
+ assert_timeset_param(" time_values" , time_values )
2190
2222
assert_timeset_param(" dates" , dates , required = FALSE )
2191
2223
assert_timeset_param(" epiweeks" , epiweeks , required = FALSE )
2192
2224
assert_integerish_param(" hours" , hours , required = FALSE )
2193
2225
assert_character_param(" language" , language , len = 1 , required = FALSE )
2194
2226
dates <- parse_timeset_input(dates )
2195
2227
epiweeks <- parse_timeset_input(epiweeks )
2196
2228
2197
- if (! xor(is.null(dates ), is.null(epiweeks ))) {
2198
- stop(" exactly one of `dates` and `epiweeks` is required" )
2199
- }
2200
2229
time_field <- if (! is.null(dates )) {
2201
2230
create_epidata_field_info(" date" , " date" )
2202
2231
} else {
0 commit comments