## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(formr)

# So this vignette runs offline, API calls are replayed from pre-recorded
# responses (vcr cassettes shipped with the package). With a real server you
# would instead call formr_api_authenticate() with your own host/credentials.
.formr_vcr <- requireNamespace("vcr", quietly = TRUE) &&
  nzchar(system.file("extdata/vcr_cassettes", package = "formr"))

if (.formr_vcr) {
  vcr::vcr_configure(
    dir = system.file("extdata/vcr_cassettes", package = "formr"),
    filter_sensitive_data = list(
      "formr-client-id-redacted"     = "dummy_client_id",
      "formr-client-secret-redacted" = "dummy_client_secret",
      "formr-host-redacted"          = "api.localhost"
    )
  )
  vcr::use_cassette("formr_api_authenticate", {
    formr_api_authenticate(host = "http://api.localhost",
      client_id = "dummy_client_id", client_secret = "dummy_client_secret",
      verbose = FALSE)
  })
}

## -----------------------------------------------------------------------------
# formr's writing functions never default to your working directory. Set a
# session default once (here a temp dir) — or pass dir=/save_path= per call.
formr_default_dir(tempdir())
formr_default_dir()

## ----eval = FALSE-------------------------------------------------------------
# # Not run: needs a live formr server.
# # Automatically finds your stored keys
# formr_api_authenticate(host = "https://api.rforms.org", account = "dashboard") # or your custom URL and account name!

## ----eval = FALSE-------------------------------------------------------------
# # Not run: needs a live formr server.
# # Download everything to a folder named "backup_my_study"
# formr_api_backup_run("my-study-name", dir = tempdir())

## ----eval = FALSE-------------------------------------------------------------
# # Not run: needs a live formr server.
# # Pull the project into a local folder
# formr_api_pull_project("my-study-name", dir = tempdir())

## ----eval = FALSE-------------------------------------------------------------
# # Not run: needs a live formr server.
# # Sync local changes to the server
# formr_api_push_project("my-study-name", dir = tempdir())

## ----eval = FALSE-------------------------------------------------------------
# # Not run: needs a live formr server.
# # Automatically push changes when files are saved (Press Esc to stop)
# formr_api_push_project("my-study-name", dir = tempdir(), watch = TRUE)

## ----eval = FALSE-------------------------------------------------------------
# # Not run: needs a live formr server.
# # View current settings
# settings <- formr_api_run_settings("my-study-name")
# print(settings)
# 
# # Update specific settings
# formr_api_run_settings("my-study-name", settings = list(
#   public = 2,        # Make run accessible via Link
#   locked = TRUE      # Lock run
#   # ...
# ))

## ----eval = FALSE-------------------------------------------------------------
# # Not run: needs a live formr server.
# # Export structure to a file
# formr_api_run_structure("my-study-name", file = "structure.json")
# 
# # Import structure from a file (Replaces current structure!)
# formr_api_run_structure("my-study-name", structure_json_path = "structure.json")

