#' Date Check for Water Quality Portal
#'
#' Checks date format for inputs to the Water Quality Portal. Used in \code{readWQPqw}
#' and \code{readWQPdata}.
#'
#' @param values named list with arguments to send to the Water Quality Portal
#' @return values named list with corrected arguments to send to the Water Quality Portal
#' @export
#' @keywords internal
#' @examples
#' values <- list(startDateLo="01-01-2002", characteristicName="Phosphorous",
#' endDate=as.Date("2014-01-01"))
#' values <- checkWQPdates(values)
checkWQPdates <- function(values){
dateNames <- c("startDateLo","startDateHi","startDate","endDate")
if(any(names(values) %in% dateNames)){
index <- which(names(values) %in% dateNames)
if("" %in% values[index]){
values <- values[-index[values[index] == ""]]
index <- which(names(values) %in% dateNames)
}
if(length(index) > 0){
# If a valid R date was put in, the format needs to be changed to mm-dd-yyyy for the WQP:
for(i in index){
dateInput <- as.character(values[[i]])
splitDates <- unlist(strsplit(dateInput, "-"))
if(length(splitDates) == 3){
if(nchar(splitDates[1]) == 4){ #R object
dates <- as.Date(lubridate::parse_date_time(dateInput, "%Y-%m-%d"))
dates <- format(dates, format="%m-%d-%Y")
values[i] <- dates
} else if (nchar(splitDates[3]) != 4){ #The way WQP wants it == 4, so this is probably a 2 digit year or something
warning("Please check the date format for the arguments: ",
paste(names(values)[i],values[i], collapse=", "))
}
} else { # Probably something wrong
warning("Please check the date format for the arguments: ",
paste(names(values)[i],values[i], collapse=", "))
}
}
names(values)[names(values) == 'startDate'] <- 'startDateLo'
names(values)[names(values) == 'endDate'] <- 'startDateHi'
}
}
return(values)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.