diff --git a/R/get_table_last_update.R b/R/get_table_last_update.R index 4a029365e635f609302633f04c0bcb09f6dcf27c..9c1d0afad5cbf12e7a15c76249f839195f4b4317 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 } }