R/update-datafile.R

Defines functions update_datafile

Documented in update_datafile

#' Mettre à jour un les métadonnées d'un datafile.
#'
#' @param datafile un objet datafile retourné par `get_datafile()` modifié par
#'   l'utilisateur
#'
#' @return un objet `dido_job()` invisible
#'
#' @family datafile
#'
#' @export
#'
#' @examples
#' library(dplyr, warn.conflicts = FALSE)
#'
#' datafile <- list_datafiles() %>%
#'   filter(title == "Un fichier de données de test") %>%
#'   get_datafile() %>%
#'   clean_metadata()
#'
#' datafile$temporal_coverage$start <- "2022-01-01"
#' datafile$temporal_coverage$end <- "2023-12-31"
#'
#' update_datafile(datafile)
update_datafile <- function(datafile) {
  check_mandatory_arguments("datafile")

  if (!is.dido_datafile(datafile)) abort_not_datafile()

  rid <- get_datafile_rid(datafile)
  id <- get_dataset_id(datafile)

  metadata <- internal_clean_metadata(datafile)
  if (is.null(metadata$published)) metadata$published <- format(Sys.time(), "%Y-%m-%d %H:%M:%S")

  url <- glue::glue("/datasets/{id}/datafiles/{rid}/metadata")
  body <- jsonlite::toJSON(metadata, pretty = TRUE, auto_unbox = TRUE, na = "null")

  result <- dido_api(method = "PUT", path = url, body = body)
  attr(result, "id") <- id

  didoscalim_info(glue::glue('datafile "{datafile$title}" modifié'))

  invisible(new_dido_datafile(result))
}
MTES-MCT/didoscalim documentation built on June 14, 2025, 12:21 a.m.