REDCapCAST/R/shiny_cast.R

68 lines
1.4 KiB
R

utils::globalVariables(c("server"))
#' Shiny server factory
#'
#' @return shiny server
#' @export
server_factory <- function() {
source(here::here("app/server.R"))
server
}
#' UI factory for shiny app
#'
#' @return shiny ui
#' @export
ui_factory <- function() {
# require(ggplot2)
source(here::here("app/ui.R"))
}
#' Launch the included Shiny-app for database casting and upload
#'
#' @return shiny app
#' @export
#'
#' @examples
#' # shiny_cast()
#'
shiny_cast <- function() {
# shiny::runApp(appDir = here::here("app/"), launch.browser = TRUE)
shiny::shinyApp(
ui_factory(),
server_factory()
)
}
#' Deploy the Shiny app with rsconnect to shinyapps.io
#'
#' @description
#' This is really just a simple wrapper
#'
#' @param path app folder path
#' @param name.app name of deployed app
#' @param name.token stored name of token
#' @param name.secret stored name of secret
#'
#' @return deploy
#' @export
#'
#' @examples
#' # deploy_shiny()
#'
deploy_shiny <- function(path = here::here("app/"),
account.name,
name.app = "shiny_cast",
name.token,
name.secret) {
# Connecting
rsconnect::setAccountInfo(
name = account.name,
token = keyring::key_get(service = name.token),
secret = keyring::key_get(service = name.secret)
)
# Deploying
rsconnect::deployApp(appDir = path, lint = TRUE, appName = name.app, )
}