View source: R/entitylist_download.R
entitylist_download | R Documentation |
entitylist_download(
pid = get_default_pid(),
did = "",
url = get_default_url(),
un = get_default_un(),
pw = get_default_pw(),
local_dir = here::here(),
filter = NULL,
etag = NULL,
overwrite = TRUE,
retries = get_retries(),
odkc_version = get_default_odkc_version(),
orders = get_default_orders(),
tz = get_default_tz(),
verbose = get_ru_verbose()
)
pid |
The numeric ID of the project, e.g.: 2. Default: Set default See |
did |
(chr) The name of the Entity List, internally called Dataset. The function will error if this parameter is not given. Default: "". |
url |
The ODK Central base URL without trailing slash. Default: Set default See |
un |
The ODK Central username (an email address).
Default: |
pw |
The ODK Central password.
Default: |
local_dir |
The local folder to save the downloaded files to,
default: |
filter |
(str) A valid filter string. Default: NULL (no filtering, all Entities returned). |
etag |
(str) The etag value from a previous call to
|
overwrite |
Whether to overwrite previously downloaded file, default: FALSE |
retries |
The number of attempts to retrieve a web resource. This parameter is given to Default: 3. |
odkc_version |
The ODK Central version as a semantic version string
(year.minor.patch), e.g. "2023.5.1". The version is shown on ODK Central's
version page Default: Set default See |
orders |
(vector of character) Orders of datetime elements for lubridate. Default:
|
tz |
A timezone to convert dates and times to. Read |
verbose |
Whether to display debug messages or not. Read |
The downloaded CSV file is named after the entity list name. The download location defaults to the current workdir, but can be modified to a different folder path which will be created if it doesn't exist.
Entity Lists can be used as Attachments in other Forms, but they can also be downloaded directly as a CSV file.
The CSV format closely matches the OData Dataset (Entity List) Service
format, with columns for system properties such as __id
(the Entity UUID),
__createdAt
, __creatorName
, etc., the Entity Label, and the
Dataset (Entity List) or Entity Properties themselves.
If any Property for an given Entity is blank (e.g. it was not captured by
that Form or was left blank), that field of the CSV is blank.
The ODK Central $filter
query string parameter can be used to filter on
system-level properties, similar to how filtering in the OData Dataset
(Entity List) Service works.
Of the OData filter specs
ODK Central implements a growing set of features .
ruODK
provides the parameter filter
(str) which, if set, will be passed
on to the ODK Central endpoint as is.
The ODK Central endpoint supports the ETag
header , which can
be used to avoid downloading the same content more than once.
When an API consumer calls this endpoint, the endpoint returns a value in
the ETag
header.
If you pass that value in the If-None-Match
header
of a subsequent request,
then if the Entity List has not been changed since the previous request,
you will receive 304 Not Modified response; otherwise you'll get the new
data.
ruODK
provides the parameter etag
which can be set from the output of
a previous call to entitylist_download()
. ruODK
strips the W/\"
and
\"
from the returned etag and expects the stripped etag as parameter.
A list of four items:
entities (tbl_df) The Entity List as tibble
http_status (int) The HTTP status code of the response. 200 if OK, 304 if a given etag finds no new entities created.
etag (str) The ETag to use in subsequent calls to entitylist_download()
downloaded_to (fs_path) The path to the downloaded CSV file
downloaded_on (POSIXct) The time of download in the local timezone
https://docs.getodk.org/central-api-dataset-management/#datasets
Other entity-management:
entity_audits()
,
entity_changes()
,
entity_create()
,
entity_delete()
,
entity_detail()
,
entity_list()
,
entity_update()
,
entity_versions()
,
entitylist_detail()
,
entitylist_list()
,
entitylist_update()
,
odata_entitylist_data_get()
,
odata_entitylist_metadata_get()
,
odata_entitylist_service_get()
## Not run:
# See vignette("setup") for setup and authentication options
# ruODK::ru_setup(svc = "....svc", un = "me@email.com", pw = "...")
ds <- entitylist_list(pid = get_default_pid())
ds1 <- entitylist_download(pid = get_default_pid(), did = ds$name[1])
# ds1$entities
# ds1$etag
# ds1$downloaded_to
# ds1$downloaded_on
ds2 <- entitylist_download(
pid = get_default_pid(),
did = ds$name[1],
etag = ds1$etag
)
# ds2$http_status == 304
newest_entity_date <- as.Date(max(ds1$entities$`__createdAt`))
ds3 <- entitylist_download(
pid = get_default_pid(),
did = ds$name[1],
filter = glue::glue("__createdAt le {newest_entity_date}")
)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.