From 0b1ce1fb8a9d91e01845308f6fe8ebad4d1c4c00 Mon Sep 17 00:00:00 2001 From: AlasDiablo <25723276+AlasDiablo@users.noreply.github.com> Date: Mon, 17 Jun 2024 08:20:10 +0200 Subject: [PATCH 1/3] feat: clean-up and add missing mail --- tdm-be/config/production.json | 2 +- tdm-be/src/controller/data-wrapper.ts | 2 +- tdm-be/src/lib/codes.ts | 8 ++++- tdm-be/src/worker/enrichment.ts | 4 ++- tdm-be/src/worker/enrichmentHook.ts | 52 ++++++++++++++++++++++----- tdm-be/src/worker/fields/csvFields.ts | 2 -- 6 files changed, 55 insertions(+), 15 deletions(-) diff --git a/tdm-be/config/production.json b/tdm-be/config/production.json index 927ba01..d18bfbb 100644 --- a/tdm-be/config/production.json +++ b/tdm-be/config/production.json @@ -10,7 +10,7 @@ "isHttps": false } }, - "mailFrom": "\"ISTEX IA Factory\" " , + "mailFrom": "\"ISTEX IA Factory\" " , "smtp": { "host": "{mail services host}", "port": 1025, diff --git a/tdm-be/src/controller/data-wrapper.ts b/tdm-be/src/controller/data-wrapper.ts index 6aa8785..e1fd89a 100644 --- a/tdm-be/src/controller/data-wrapper.ts +++ b/tdm-be/src/controller/data-wrapper.ts @@ -107,7 +107,7 @@ const getWrappers = async () => { return wrappers; }; -//Route to access all wrapper available due to config set +//Route to access all wrappers available due to config set router.get('/list', (req, res) => { getWrappers().then((wrappers) => { res.json(wrappers); diff --git a/tdm-be/src/lib/codes.ts b/tdm-be/src/lib/codes.ts index 79e0317..3748e4b 100644 --- a/tdm-be/src/lib/codes.ts +++ b/tdm-be/src/lib/codes.ts @@ -7,7 +7,7 @@ export const ERROR_CODE_WRAPPER_UNEXPECTED_ERROR = '50'; export const ERROR_MESSAGE_WRAPPER_UNEXPECTED_ERROR = `Le convertisseur a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_WRAPPER_UNEXPECTED_ERROR}`; export const ERROR_CODE_FILE_SYSTEM_ERROR = '51'; -export const ERROR_MESSAGE_FILE_SYSTEM_ERROR = `Le convertisseur a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_FILE_SYSTEM_ERROR}`; +export const ERROR_MESSAGE_FILE_SYSTEM_ERROR = `Le traitement a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_FILE_SYSTEM_ERROR}`; export const ERROR_CODE_WRAPPER_UNREACHABLE_ERROR = '52'; export const ERROR_MESSAGE_WRAPPER_UNREACHABLE_ERROR = `Le convertisseur a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_WRAPPER_UNREACHABLE_ERROR}`; @@ -23,3 +23,9 @@ export const ERROR_MESSAGE_ENRICHMENT_UNEXPECTED_ERROR = `Le enrichissement a re export const ERROR_CODE_ENRICHMENT_HOOK_UNEXPECTED_ERROR = '55'; export const ERROR_MESSAGE_ENRICHMENT_HOOK_UNEXPECTED_ERROR = `La récuperation des données a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_HOOK_UNEXPECTED_ERROR}`; + +export const ERROR_CODE_ENRICHMENT_HOOK_UNREACHABLE_ERROR = '56'; +export const ERROR_MESSAGE_ENRICHMENT_HOOK_UNREACHABLE_ERROR = `La récuperation des données a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_HOOK_UNREACHABLE_ERROR}`; + +export const ERROR_CODE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR = '57'; +export const ERROR_MESSAGE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR = `La récuperation des données a été refusé. Code d'erreur ${ERROR_CODE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR}`; diff --git a/tdm-be/src/worker/enrichment.ts b/tdm-be/src/worker/enrichment.ts index eaec845..ff91744 100644 --- a/tdm-be/src/worker/enrichment.ts +++ b/tdm-be/src/worker/enrichment.ts @@ -123,7 +123,9 @@ const catchEnrichment = (processingId: string) => { return; } errorEmail(processing, ERROR_MESSAGE_ENRICHMENT_UNEXPECTED_ERROR); - } catch (ignored) {} + } catch (ignored) { + /* empty */ + } }); }; diff --git a/tdm-be/src/worker/enrichmentHook.ts b/tdm-be/src/worker/enrichmentHook.ts index 74d4a7b..b4e2acc 100644 --- a/tdm-be/src/worker/enrichmentHook.ts +++ b/tdm-be/src/worker/enrichmentHook.ts @@ -1,9 +1,14 @@ -import { ERROR_MESSAGE_ENRICHMENT_HOOK_UNEXPECTED_ERROR } from '~/lib/codes'; +import { + ERROR_MESSAGE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR, + ERROR_MESSAGE_ENRICHMENT_HOOK_UNEXPECTED_ERROR, + ERROR_MESSAGE_ENRICHMENT_HOOK_UNREACHABLE_ERROR, + ERROR_MESSAGE_FILE_SYSTEM_ERROR, +} from '~/lib/codes'; import environment from '~/lib/config'; import crash from '~/lib/crash'; import { sendErrorMail, sendFinishedMail } from '~/lib/email'; import { downloadFile, randomFileName } from '~/lib/files'; -import logger, { workerLogger } from '~/lib/logger'; +import { workerLogger } from '~/lib/logger'; import { errorEmail } from '~/lib/utils'; import dynamicConfig from '~/model/DynamicConfig'; import { findProcessing, updateProcessing } from '~/model/ProcessingModel'; @@ -41,7 +46,7 @@ const enrichmentHookSuccess = async (processingId: string) => { // Find the processing in the cache db const initialProcessing = findProcessing(processingId); - // Check if the processing exist + // Check if the processing exists if (!initialProcessing) { error(processingId, 'Enrichment-Hook initial processing is undefined'); // Send error the global catcher because this is normally impossible @@ -75,7 +80,7 @@ const enrichmentHookSuccess = async (processingId: string) => { return enrichmentUrl.includes(entry.url); }); - // Check if enrichment entry exist + // Check if enrichment entry exists if (!enrichmentEntry || !enrichmentEntry.url || !enrichmentEntry.retrieveUrl) { error(processingId, 'Enrichment-Hook config dos not contain the enrichment url'); // Send error the global catcher because this is normally impossible @@ -94,7 +99,17 @@ const enrichmentHookSuccess = async (processingId: string) => { } catch (e) { const message = 'Impossible to contact enrichment-hook api'; error(processingId, message); - // TODO Send an error email + sendErrorMail({ + email, + data: { + processingId: initialProcessing.id, + originalName: initialProcessing.originalName, + wrapper: initialProcessing.wrapper as string, + wrapperParam: initialProcessing.wrapperParam as string, + enrichment: initialProcessing.enrichment as string, + errorMessage: ERROR_MESSAGE_ENRICHMENT_HOOK_UNREACHABLE_ERROR, + }, + }).then(undefined); crash(e, message, initialProcessing); return; } @@ -105,7 +120,17 @@ const enrichmentHookSuccess = async (processingId: string) => { // Check if we receive a non 200 status code if (response.status !== 200) { error(processingId, 'Enrichment-hook api return an non 200 status'); - // TODO Send an error email + sendErrorMail({ + email, + data: { + processingId: initialProcessing.id, + originalName: initialProcessing.originalName, + wrapper: initialProcessing.wrapper as string, + wrapperParam: initialProcessing.wrapperParam as string, + enrichment: initialProcessing.enrichment as string, + errorMessage: ERROR_MESSAGE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR, + }, + }).then(undefined); return; } @@ -120,7 +145,17 @@ const enrichmentHookSuccess = async (processingId: string) => { } catch (e) { const message = "Can't write tmp file"; error(processingId, message); - // TODO Send an error email + sendErrorMail({ + email, + data: { + processingId: initialProcessing.id, + originalName: initialProcessing.originalName, + wrapper: initialProcessing.wrapper as string, + wrapperParam: initialProcessing.wrapperParam as string, + enrichment: initialProcessing.enrichment as string, + errorMessage: ERROR_MESSAGE_FILE_SYSTEM_ERROR, + }, + }).then(undefined); crash(e, message, initialProcessing); return; } @@ -128,7 +163,6 @@ const enrichmentHookSuccess = async (processingId: string) => { const resultUrl = `${ environment.hosts.external.isHttps ? 'https' : 'http' }://${environment.hosts.external.host}/downloads/${finalFileName}`; - logger.info('mail sent to smtp'); sendFinishedMail({ email, @@ -162,7 +196,7 @@ const enrichmentHookFailure = async (processingId: string) => { // Find the processing in the cache db const initialProcessing = findProcessing(processingId); - // Check if the processing exist + // Check if the processing exists if (!initialProcessing) { error(processingId, 'Enrichment-Hook initial processing is undefined'); // Send error the global catcher because this is normally impossible diff --git a/tdm-be/src/worker/fields/csvFields.ts b/tdm-be/src/worker/fields/csvFields.ts index 4db988f..8b5c464 100644 --- a/tdm-be/src/worker/fields/csvFields.ts +++ b/tdm-be/src/worker/fields/csvFields.ts @@ -16,8 +16,6 @@ const csvFields = async (fileName: string): Promise => { timeout: 600000, }); - logger.info(Buffer.from(response.data, 'binary').toString('utf8')); - const json = JSON.parse(Buffer.from(response.data, 'binary').toString('utf8')) as Array<{ value: string; }>; From b857c049e2b3e194db02ec95a25c74593d08a513 Mon Sep 17 00:00:00 2001 From: AlasDiablo <25723276+AlasDiablo@users.noreply.github.com> Date: Mon, 17 Jun 2024 08:46:29 +0200 Subject: [PATCH 2/3] feat: add an error code list --- ERROR_CODE_FR.md | 97 +++++++++++++++++++++++ tdm-be/src/lib/codes.ts | 8 +- tdm-be/src/templates/processing-error.njk | 4 + tdm-be/src/worker/wrapper.ts | 4 +- 4 files changed, 108 insertions(+), 5 deletions(-) create mode 100644 ERROR_CODE_FR.md diff --git a/ERROR_CODE_FR.md b/ERROR_CODE_FR.md new file mode 100644 index 0000000..f35bf79 --- /dev/null +++ b/ERROR_CODE_FR.md @@ -0,0 +1,97 @@ +# List des codes d'erreur qu'IA Factory peut renvoyer + +Ceci est une list qui tente d'expliqué toutes les causes liées à un code d'erreur. + +## Erreur de type client + +List les erreurs qui sont dues à un problème lié aux informations envoyé par l'utilisateur. + +### Code 40 + +Ce code est utilisé quand le convertisseur ne peut pas convertire les données, car elles sont : + +- Incompatible avec le convertiseurs choisi +- Les données sont mal formaté ou corrompue +- Le champ cible et inapproprié ou incorrecte + +## Erreur de type serveur + +List les erreurs qui sont dues à un problème du côté de l'application. + +### Code 50 + +Le convertisseur a rencontré une erreur inattendue qui n'a pas était prevu et qui est irrécupérables. + +Cette erreur englobe tout le convertisseur, donc si vous la voyer, c'est qu'une erreur et apparue a un moment non prevue +par les autres erreurs. + +### Code 51 + +Erreur globale utilisée pour indiquer un problème lié au system de fichier. + +Cette erreur peut arriver quand : + +- Le disque et plein +- S'il y a des problème avec les access disque + +### Code 52 + +L'appelle du convertisseur a échoué du a un problème réseaux. + +Ceci peut être dû à : + +- Convertisseur est surchargé +- Convertisseur est en maintenance +- Problème réseaux (routage, proxy, etc.) + +### Code 53 + +L'appelle de l'enrichisseur a échoué du a un problème réseaux. + +Ceci peut être dû à : + +- Enrichisseur est surchargé +- Enrichisseur est en maintenance +- Problème réseaux (routage, proxy, etc.) + +### Code 54 + +L'enrichisseur à refusé l'erichicement. + +Ceci peut être dû à : + +- Problème réseaux qui a causé une corruption des données +- Les données convertir, on était corrompue + +### Code 55 + +L'enrichisseur a rencontré une erreur inattendue qui n'a pas était prevu et qui est irrécupérables. + +Cette erreur englobe tout l'enrichisseur, donc si vous la voyer, c'est qu'une erreur et apparue a un moment non prevue +par les autres erreurs. + +### Code 56 + +La récuperation des resultas a rencontré une erreur inattendue qui n'a pas était prevu et qui est irrécupérables. + +Cette erreur englobe tout la récuperation des resultas, donc si vous la voyer, c'est qu'une erreur et apparue a un +moment non prevue par les autres erreurs. + +### Code 57 + +L'appelle pour la récuperation des resultas a échoué du a un problème réseaux. + +Ceci peut être dû à : + +- Enrichisseur est surchargé +- Enrichisseur est en maintenance +- Problème réseaux (routage, proxy, etc.) + +### Code 58 + +L'enrichisseur a refusé la récuperation des resultas. + +Ceci peut être dû à : + +- Problème réseaux qui a causé une corruption des données +- Les données liées ont expiré ou ne sont pas disponible diff --git a/tdm-be/src/lib/codes.ts b/tdm-be/src/lib/codes.ts index 3748e4b..6b7a082 100644 --- a/tdm-be/src/lib/codes.ts +++ b/tdm-be/src/lib/codes.ts @@ -18,14 +18,14 @@ export const ERROR_MESSAGE_ENRICHMENT_UNREACHABLE_ERROR = `L'enrichissement a re export const ERROR_CODE_ENRICHMENT_PAYLOAD_NOT_ACCEPTED_ERROR = '54'; export const ERROR_MESSAGE_ENRICHMENT_PAYLOAD_NOT_ACCEPTED_ERROR = `L'enrichissement a refusé le traitement. Code d'erreur ${ERROR_CODE_ENRICHMENT_PAYLOAD_NOT_ACCEPTED_ERROR}`; -export const ERROR_CODE_ENRICHMENT_UNEXPECTED_ERROR = '54'; +export const ERROR_CODE_ENRICHMENT_UNEXPECTED_ERROR = '55'; export const ERROR_MESSAGE_ENRICHMENT_UNEXPECTED_ERROR = `Le enrichissement a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_UNEXPECTED_ERROR}`; -export const ERROR_CODE_ENRICHMENT_HOOK_UNEXPECTED_ERROR = '55'; +export const ERROR_CODE_ENRICHMENT_HOOK_UNEXPECTED_ERROR = '56'; export const ERROR_MESSAGE_ENRICHMENT_HOOK_UNEXPECTED_ERROR = `La récuperation des données a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_HOOK_UNEXPECTED_ERROR}`; -export const ERROR_CODE_ENRICHMENT_HOOK_UNREACHABLE_ERROR = '56'; +export const ERROR_CODE_ENRICHMENT_HOOK_UNREACHABLE_ERROR = '57'; export const ERROR_MESSAGE_ENRICHMENT_HOOK_UNREACHABLE_ERROR = `La récuperation des données a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_HOOK_UNREACHABLE_ERROR}`; -export const ERROR_CODE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR = '57'; +export const ERROR_CODE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR = '58'; export const ERROR_MESSAGE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR = `La récuperation des données a été refusé. Code d'erreur ${ERROR_CODE_ENRICHMENT_HOOK_PAYLOAD_NOT_ACCEPTED_ERROR}`; diff --git a/tdm-be/src/templates/processing-error.njk b/tdm-be/src/templates/processing-error.njk index 3660a94..53c8447 100644 --- a/tdm-be/src/templates/processing-error.njk +++ b/tdm-be/src/templates/processing-error.njk @@ -4,6 +4,10 @@ Vous trouverez dans ce mail un rapport d'erreur du traitement {{ processingId }} {{ errorMessage }} +Vous pouvais retrouvé une description de la cause possible de l'erreur sur le lien ci-dessous : + +https://github.com/Inist-CNRS/tdm-factory/blob/main/ERROR_CODE_FR.md + Voici un récapitulatif des informations liées à ce traitement : - Id du traitement : {{ processingId }} diff --git a/tdm-be/src/worker/wrapper.ts b/tdm-be/src/worker/wrapper.ts index 2caeb95..07d7e4b 100644 --- a/tdm-be/src/worker/wrapper.ts +++ b/tdm-be/src/worker/wrapper.ts @@ -137,7 +137,9 @@ const catchWrapper = (processingId: string) => { return; } errorEmail(processing, ERROR_MESSAGE_WRAPPER_UNEXPECTED_ERROR); - } catch (ignored) {} + } catch (ignored) { + /* empty */ + } }); }; From e8dfac7aab8f6cc2e3885b0d57779381a06ce770 Mon Sep 17 00:00:00 2001 From: AlasDiablo <25723276+AlasDiablo@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:15:17 +0200 Subject: [PATCH 3/3] fix: apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Parmentier --- ERROR_CODE_FR.md | 74 +++++++++++------------ tdm-be/src/lib/codes.ts | 2 +- tdm-be/src/templates/processing-error.njk | 2 +- 3 files changed, 39 insertions(+), 39 deletions(-) diff --git a/ERROR_CODE_FR.md b/ERROR_CODE_FR.md index f35bf79..d0d77de 100644 --- a/ERROR_CODE_FR.md +++ b/ERROR_CODE_FR.md @@ -1,97 +1,97 @@ -# List des codes d'erreur qu'IA Factory peut renvoyer +# Liste des codes d'erreur qu'IA Factory peut renvoyer -Ceci est une list qui tente d'expliqué toutes les causes liées à un code d'erreur. +Ceci est une liste qui tente d'expliquer toutes les causes liées à un code d'erreur. ## Erreur de type client -List les erreurs qui sont dues à un problème lié aux informations envoyé par l'utilisateur. +Liste les erreurs qui sont dues à un problème lié aux informations envoyées par l'utilisateur. ### Code 40 -Ce code est utilisé quand le convertisseur ne peut pas convertire les données, car elles sont : +Ce code est utilisé quand le convertisseur ne peut pas convertir les données, car elles sont : -- Incompatible avec le convertiseurs choisi -- Les données sont mal formaté ou corrompue -- Le champ cible et inapproprié ou incorrecte +- incompatibles avec le convertisseur choisi, +- les données sont mal formatées ou corrompues, +- le champ cible est inapproprié ou incorrect ## Erreur de type serveur -List les erreurs qui sont dues à un problème du côté de l'application. +Liste les erreurs qui sont dues à un problème du côté de l'application. ### Code 50 -Le convertisseur a rencontré une erreur inattendue qui n'a pas était prevu et qui est irrécupérables. +Le convertisseur a rencontré une erreur inattendue qui n'a pas été prévu et qui est irrécupérable. -Cette erreur englobe tout le convertisseur, donc si vous la voyer, c'est qu'une erreur et apparue a un moment non prevue +Cette erreur englobe tout le convertisseur, une erreur est apparue à un moment non prévu par les autres erreurs. ### Code 51 -Erreur globale utilisée pour indiquer un problème lié au system de fichier. +Erreur globale utilisée pour indiquer un problème lié au système de fichier. -Cette erreur peut arriver quand : +Cette erreur peut arriver : -- Le disque et plein -- S'il y a des problème avec les access disque +- quand le disque est plein, +- s'il y a des problèmes avec les accès disque. ### Code 52 -L'appelle du convertisseur a échoué du a un problème réseaux. +L'appel du convertisseur a échoué dû a un problème réseau. Ceci peut être dû à : -- Convertisseur est surchargé -- Convertisseur est en maintenance -- Problème réseaux (routage, proxy, etc.) +- convertisseur surchargé, +- convertisseur en maintenance, +- problème réseau (routage, proxy, etc.). ### Code 53 -L'appelle de l'enrichisseur a échoué du a un problème réseaux. +L'appel de l'enrichisseur a échoué dû a un problème réseau. Ceci peut être dû à : -- Enrichisseur est surchargé -- Enrichisseur est en maintenance -- Problème réseaux (routage, proxy, etc.) +- enrichisseur est surchargé, +- enrichisseur en maintenance, +- problème réseau (routage, proxy, etc.). ### Code 54 -L'enrichisseur à refusé l'erichicement. +L'enrichisseur a refusé l'enrichissement. Ceci peut être dû à : -- Problème réseaux qui a causé une corruption des données -- Les données convertir, on était corrompue +- problème réseau qui a causé une corruption des données, +- données à convertir corrompues. ### Code 55 -L'enrichisseur a rencontré une erreur inattendue qui n'a pas était prevu et qui est irrécupérables. +L'enrichisseur a rencontré une erreur inattendue qui n'a pas été prévue et qui est irrécupérable. -Cette erreur englobe tout l'enrichisseur, donc si vous la voyer, c'est qu'une erreur et apparue a un moment non prevue +Cette erreur englobe tout l'enrichisseur, une erreur est apparue à un moment non prévu par les autres erreurs. ### Code 56 -La récuperation des resultas a rencontré une erreur inattendue qui n'a pas était prevu et qui est irrécupérables. +La récupération des résultats a rencontré une erreur inattendue qui n'a pas été prévue et qui est irrécupérable. -Cette erreur englobe tout la récuperation des resultas, donc si vous la voyer, c'est qu'une erreur et apparue a un -moment non prevue par les autres erreurs. +Cette erreur englobe tout la récupération des résultats, une erreur est apparue à un +moment non couvert par les autres erreurs. ### Code 57 -L'appelle pour la récuperation des resultas a échoué du a un problème réseaux. +La requête de récupération des résultats a échoué à cause d'un problème réseau. Ceci peut être dû à : -- Enrichisseur est surchargé -- Enrichisseur est en maintenance -- Problème réseaux (routage, proxy, etc.) +- enrichisseur surchargé, +- enrichisseur en maintenance, +- problème réseau (routage, proxy, etc.). ### Code 58 -L'enrichisseur a refusé la récuperation des resultas. +L'enrichisseur a refusé la récupération des résultats. Ceci peut être dû à : -- Problème réseaux qui a causé une corruption des données -- Les données liées ont expiré ou ne sont pas disponible +- problème réseau qui a causé une corruption des données, +- les données liées ont expiré ou ne sont pas disponibles. diff --git a/tdm-be/src/lib/codes.ts b/tdm-be/src/lib/codes.ts index 6b7a082..b592993 100644 --- a/tdm-be/src/lib/codes.ts +++ b/tdm-be/src/lib/codes.ts @@ -19,7 +19,7 @@ export const ERROR_CODE_ENRICHMENT_PAYLOAD_NOT_ACCEPTED_ERROR = '54'; export const ERROR_MESSAGE_ENRICHMENT_PAYLOAD_NOT_ACCEPTED_ERROR = `L'enrichissement a refusé le traitement. Code d'erreur ${ERROR_CODE_ENRICHMENT_PAYLOAD_NOT_ACCEPTED_ERROR}`; export const ERROR_CODE_ENRICHMENT_UNEXPECTED_ERROR = '55'; -export const ERROR_MESSAGE_ENRICHMENT_UNEXPECTED_ERROR = `Le enrichissement a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_UNEXPECTED_ERROR}`; +export const ERROR_MESSAGE_ENRICHMENT_UNEXPECTED_ERROR = `L'enrichissement a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_UNEXPECTED_ERROR}`; export const ERROR_CODE_ENRICHMENT_HOOK_UNEXPECTED_ERROR = '56'; export const ERROR_MESSAGE_ENRICHMENT_HOOK_UNEXPECTED_ERROR = `La récuperation des données a rencontré une erreur inattendue. Code d'erreur ${ERROR_CODE_ENRICHMENT_HOOK_UNEXPECTED_ERROR}`; diff --git a/tdm-be/src/templates/processing-error.njk b/tdm-be/src/templates/processing-error.njk index 53c8447..7023f06 100644 --- a/tdm-be/src/templates/processing-error.njk +++ b/tdm-be/src/templates/processing-error.njk @@ -4,7 +4,7 @@ Vous trouverez dans ce mail un rapport d'erreur du traitement {{ processingId }} {{ errorMessage }} -Vous pouvais retrouvé une description de la cause possible de l'erreur sur le lien ci-dessous : +Vous pouvez retrouver une description de la cause possible de l'erreur sur le lien ci-dessous : https://github.com/Inist-CNRS/tdm-factory/blob/main/ERROR_CODE_FR.md