add checks to read/write csv and refactor
This commit is contained in:
@@ -61,10 +61,3 @@ fetch_all <- function(download_dir="inst/records/", create=FALSE) {
|
|||||||
# if successful, set progressbar to 100%
|
# if successful, set progressbar to 100%
|
||||||
setTimerProgressBar(pb, 250)
|
setTimerProgressBar(pb, 250)
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_dir_not_creatable <- function(cond) {
|
|
||||||
# currently this has call: dir.create(download_dir)
|
|
||||||
# do we want to change this to fetch_all(...) ?
|
|
||||||
cond$message <- "Directory does not exist and can't be created. Probably because the path is not writeable."
|
|
||||||
stop(cond)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -19,6 +19,13 @@ check_directory <- function(path, create=F) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stop_dir_not_creatable <- function(cond) {
|
||||||
|
# currently this has call: dir.create(download_dir)
|
||||||
|
# do we want to change this to fetch_all(...) ?
|
||||||
|
cond$message <- "Directory does not exist and can't be created. Probably because the path is not writeable."
|
||||||
|
stop(cond)
|
||||||
|
}
|
||||||
|
|
||||||
# appends a file seperator at end of path if needed
|
# appends a file seperator at end of path if needed
|
||||||
make_directory_path <- function(path) {
|
make_directory_path <- function(path) {
|
||||||
if (!str_ends(path, .Platform$file.sep)) str_c(path, .Platform$file.sep)
|
if (!str_ends(path, .Platform$file.sep)) str_c(path, .Platform$file.sep)
|
||||||
|
|||||||
@@ -233,6 +233,11 @@ parse_speakerlist <- function(speakerliste_xml) {
|
|||||||
#'
|
#'
|
||||||
#' @export
|
#' @export
|
||||||
write_to_csv <- function(tables, path="inst/csv/", create=F) {
|
write_to_csv <- function(tables, path="inst/csv/", create=F) {
|
||||||
|
is_valid_res(tables)
|
||||||
|
stopifnot("path must be of type character" = is.character(path))
|
||||||
|
stopifnot("create must be of type logical" = is.logical(create))
|
||||||
|
|
||||||
|
path <- make_directory_path(path)
|
||||||
check_directory(path, create)
|
check_directory(path, create)
|
||||||
write.table(tables$speaker, str_c(path, "speaker.csv"))
|
write.table(tables$speaker, str_c(path, "speaker.csv"))
|
||||||
write.table(tables$speeches, str_c(path, "speeches.csv"))
|
write.table(tables$speeches, str_c(path, "speeches.csv"))
|
||||||
@@ -250,6 +255,9 @@ write_to_csv <- function(tables, path="inst/csv/", create=F) {
|
|||||||
#'
|
#'
|
||||||
#' @export
|
#' @export
|
||||||
read_from_csv <- function(path="inst/csv/") {
|
read_from_csv <- function(path="inst/csv/") {
|
||||||
|
stopifnot("path must be of type character" = is.character(path))
|
||||||
|
|
||||||
|
path <- make_directory_path(path)
|
||||||
list(speaker = read.table(str_c(path, "speaker.csv")) %>%
|
list(speaker = read.table(str_c(path, "speaker.csv")) %>%
|
||||||
tibble() %>%
|
tibble() %>%
|
||||||
mutate(id = as.character(id)),
|
mutate(id = as.character(id)),
|
||||||
@@ -259,5 +267,7 @@ read_from_csv <- function(path="inst/csv/") {
|
|||||||
date = as.Date(date)),
|
date = as.Date(date)),
|
||||||
talks = tibble %$% read.table(str_c(path, "talks.csv")),
|
talks = tibble %$% read.table(str_c(path, "talks.csv")),
|
||||||
comments = tibble %$% read.table(str_c(path, "comments.csv")),
|
comments = tibble %$% read.table(str_c(path, "comments.csv")),
|
||||||
applause = tibble %$% read.table(str_c(path, "applause.csv")))
|
applause = tibble %$% read.table(str_c(path, "applause.csv"))) -> res
|
||||||
|
is_valid_res(res)
|
||||||
|
res
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user