---
title: "Autres usages"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Autres usages}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

```{r setup, include = FALSE}
library(melodi)
```

# Avoir une vue globale sur les jeux de données

L'appel à `get_catalog` peut être utile pour avoir une vue d'ensemble des jeux de données et leur description.

Le code suivant permet de constituer et ouvrir un fichier Excel récapitulatif des jeux de données en français et en anglais.

```{r catalog, eval = FALSE}
catalog_fr <- get_catalog("fr") |>
  mutate(lang = "fr")

catalog_en <- get_catalog("en") |>
  mutate(lang = "en")

catalog_all <- catalog_fr |>
  rbind(catalog_en) |>
  relocate(lang) |>
  arrange(identifier, desc(lang))

temp_xlsx <- tempfile(fileext = ".xlsx")

openxlsx::write.xlsx(
  x = catalog_all,
  file = temp_xlsx,
  colWidths = "auto",
  withFilter = TRUE
)

utils::browseURL(temp_xlsx)
```

# Télécharger un fichier Excel généré par Melodi

L'ensemble des fichiers produits et publiés par Melodi sont accessibles via l'API et donc le package.

La fonction `get_file` permet de récupérer et télécharger un fichier par son nom, et le renommer au besoin.

```{r excel, eval = FALSE}
fic_xlsx1 <- get_file(
  ds_name = "DS_EC_DECES",
  file_name = "T1_DECES_JOUR_DEP_REG_FR",
  download_file_name = "T1_DECES_JOUR_NAT_2024_10.xlsx",
  download_directory = tempdir()
)
```

# Travailler sur un autre environnement Melodi

Le package dispose d'une *option* `rmelodi.base_url_api` permettant de travailler dans un autre environnement que Melodi en production : surcharger sa valeur permet de travailler dans un autre environnement que la production, en fournissant l'URL de l'API à utiliser. Tous les appels de fonction du package se feront alors sur cet autre environnement.

S'il s'agit d'environnements internes, penser au besoin à désactiver le proxy pour l'URL en question.

```{r interne, eval = FALSE}
Sys.setenv(no_proxy = "autre_url_api_melodi.fr")

options(rmelodi.base_url_api = "autre_url_api_melodi")

get_catalog() # <- appelle autre_url_api_melodi/catalog/all
```
