Skip to content

Commit 2316937

Browse files
modification du onLoad, mise en fonction du chargement de melodi et test associé
1 parent fa3b991 commit 2316937

File tree

5 files changed

+54
-13
lines changed

5 files changed

+54
-13
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: doremifasol
22
Title: Data on Insee Website
3-
Version: 0.5.6.0001
3+
Version: 0.5.6.0002
44
Authors@R: c(
55
person("Pierre", "Lamarche", email = "[email protected]", role = c("aut", "cre")),
66
person("Pierre-Yves", "Berrard", role = "aut", email = "[email protected]"),

R/utile.R

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,3 +125,29 @@ listToDf <- function(liste, vars = NULL) {
125125
)
126126

127127
}
128+
129+
130+
#' recupererMelodi ----------------------------------------------------
131+
#'
132+
#' Objectif : récupérer sous forme de liste le catalogue de Mélodi traité sur le SSP Cloud
133+
#'
134+
#' @param url le lien vers le json généré sur le SSP Cloud
135+
#'
136+
#' @returns un objet list correspondant à la structure du json
137+
#'
138+
#' @keywords internal
139+
recupererMelodi <- function(url) {
140+
requete_melodi <- httr::GET(url)
141+
ld_melodi <- jsonlite::fromJSON(httr::content(requete_melodi, as = "text", encoding = "utf-8"),
142+
simplifyDataFrame = FALSE)
143+
ld_melodi <- lapply(ld_melodi, function(x) {
144+
within(x, {
145+
if (!is.null(x$date_ref))
146+
date_ref <- as.Date(date_ref, format = "%Y-%m-%d")
147+
if(!is.null(x$separateur))
148+
separateur <- paste0("quote(\"", separateur, "\")")
149+
})
150+
}
151+
)
152+
ld_melodi
153+
}

R/zzz.R

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,9 @@
11
.onLoad <- function(libname, pkgname) {
22
#data(liste_donnees)
33
if (curl::has_internet()) {
4-
requete_melodi <- httr::GET("https://minio.lab.sspcloud.fr/pierrelamarche/melodi/liste_donnees.json")
5-
ld_melodi <- jsonlite::fromJSON(httr::content(requete_melodi, as = "text", encoding = "utf-8"),
6-
simplifyDataFrame = FALSE)
7-
ld_melodi <- lapply(ld_melodi, function(x) {
8-
within(x, {
9-
if (!is.null(x$date_ref))
10-
date_ref <- as.Date(date_ref, format = "%Y-%m-%d")
11-
if(!is.null(x$separateur))
12-
separateur <- paste0("quote(\"", separateur, "\")")
13-
})
14-
}
15-
)
4+
ld_melodi <- tryCatch(recupererMelodi("https://minio.lab.sspcloud.fr/pierrelamarche/melodi/liste_donnees.json"),
5+
error = function(e) packageStartupMessage("Le catalogue Melodi n'a pas pu \u00eatre t\u00e9l\u00e9charg\u00e9.\n", e$message))
6+
167
assign("ld", c(ld, ld_melodi),
178
envir = asNamespace("doremifasol")
189
)

man/recupererMelodi.Rd

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/test_utile.R

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,9 @@ test_that("listToDf sur un exemple réduit", {
6565
)
6666

6767
})
68+
69+
## test chargement catalogue Melodi
70+
test_that("Chargement du catalogue Melodi", {
71+
melodi <- recupererMelodi("https://minio.lab.sspcloud.fr/pierrelamarche/melodi/liste_donnees.json")
72+
expect_type(melodi, "list")
73+
})

0 commit comments

Comments
 (0)