From 2e643d17a3e2d13d8cfd5a9f773e43ba8c10f425 Mon Sep 17 00:00:00 2001 From: lisasmah <lisa.smah@developpemnt-durable.gouv.fr> Date: Fri, 7 Mar 2025 15:27:07 +0100 Subject: [PATCH] =?UTF-8?q?#29=20Refactorisation=20de=20la=20fonction=20po?= =?UTF-8?q?ur=20uniformiser=20le=20format=20de=20sortie.=20Gestion=20des?= =?UTF-8?q?=20caract=C3=A8res=20sp=C3=A9ciaux=20dans=20les=20messages=20de?= =?UTF-8?q?=20retour.=20Ajout=20du=20cas=20o=C3=B9=20la=20table=20n'a=20pa?= =?UTF-8?q?s=20encore=20=C3=A9t=C3=A9=20modifi=C3=A9e=20depuis=20l'activat?= =?UTF-8?q?ion=20de=20`track=5Fcommit=5Ftimestamp`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/get_table_last_update.R | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/R/get_table_last_update.R b/R/get_table_last_update.R index 4a02936..9c1d0af 100644 --- a/R/get_table_last_update.R +++ b/R/get_table_last_update.R @@ -46,13 +46,18 @@ get_table_last_update <- function(conn, nom_schema, nom_table) { # Vérifier si un résultat a été retourné if (nrow(result) > 0) { - return(result$modified_timestamp[1]) # Retourne la dernière date de commit - } else { + if (is.na(result$modified_timestamp[1])) { + return(list(date = NA, message = "La date de commit est NULL. La table n\'a pas encore \u00e9t\u00e9 modifi\u00e9e depuis l\'activation de track_commit_timestamp.")) + } else { + commit_date <- as.Date(result$modified_timestamp[1]) + return(list(date = commit_date, source = "Source: track_commit_timestamp")) + } + } else { # Si pas de résultat, vérifier dans zz_r_df_def query_check_table <- paste0(" SELECT commentaire FROM ", nom_schema, ".zz_r_df_def - WHERE table_nm = '", nom_table, "' + WHERE table_nm = '\", nom_table, \"' ORDER BY date_postee DESC LIMIT 1;") @@ -70,19 +75,22 @@ get_table_last_update <- function(conn, nom_schema, nom_table) { date_match <- regmatches(comment_text, regexpr(date_pattern, comment_text)) if (length(date_match) > 0) { - return(date_match) # Retourne la date extraite du commentaire + # Convertir la date extraite en format Date (JJ/MM/AAAA -> YYYY-MM-DD) + comment_date <- as.Date(date_match, format = "%d/%m/%Y") + return(list(date = comment_date, source = "Source: commentaire de table")) } else { - return("Le commentaire ne contient pas de date valide.") # Si la date n'est pas au bon format + # Retourner NA et message d'erreur + return(list(date = NA, message = "Le commentaire ne contient pas de date valide.")) } } else { - return("Aucun commentaire trouvé pour la table dans zz_r_df_def.") # Si aucun commentaire n'est trouvé + return(list(date = NA, message ="Aucun commentaire trouv\u00e9 pour la table dans zz_r_df_def.")) # Si aucun commentaire n'est trouvé } } } else { - return("L'option track_commit_timestamp est désactivée.") # Option désactivée + return(list(date = NA, message ="L\'option track_commit_timestamp est d\u00e9sactiv\u00e9e.")) # Option désactivée } } else { - return("track_commit_timestamp n'a pas retourné de résultat valide.") # Erreur de récupération des paramètres + return(list(date = NA, message ="track_commit_timestamp n\'a pas retourn\u00e9 de r\u00e9sultat valide.")) # Erreur de récupération des paramètres } } -- GitLab