From 53632b1d535ffcc8b625e2e9768ab92d1d53b30f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Pailharey?= <rpailharey@grandlyon.com>
Date: Thu, 24 Aug 2023 15:29:04 +0200
Subject: [PATCH] fix: onDeleteAccount now handle empty account

---
 src/core/contractActivation.js   | 2 +-
 src/core/contractStartDate.js    | 6 ++++--
 src/core/contractTermination.js  | 4 ++--
 src/core/contractVerification.js | 4 ++--
 src/core/findUserAddress.js      | 4 ++--
 src/core/findUserPdl.js          | 2 +-
 src/onDeleteAccount.js           | 5 +++++
 src/requests/bo.js               | 8 ++++----
 8 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/core/contractActivation.js b/src/core/contractActivation.js
index e4bb806..465d6ef 100644
--- a/src/core/contractActivation.js
+++ b/src/core/contractActivation.js
@@ -68,7 +68,7 @@ async function activateContract(
   try {
     return parseServiceId(parsedReply)
   } catch (error) {
-    const errorMessage = 'Error while activating contract: ' + error
+    const errorMessage = 'Error while activating contract: ' + error.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage)
     if (parsedReply.Envelope.Body.Fault) {
diff --git a/src/core/contractStartDate.js b/src/core/contractStartDate.js
index e51427d..10e5e3a 100644
--- a/src/core/contractStartDate.js
+++ b/src/core/contractStartDate.js
@@ -30,7 +30,8 @@ async function getContractStartDate(url, apiAuthKey, userLogin, pointId) {
     headers: sgeHeaders,
     xml: consulterDonneesTechniquesContractuelles(pointId, userLogin),
   }).catch(err => {
-    const errorMessage = 'Error while fetching contract start date : ' + err
+    const errorMessage =
+      'Error while fetching contract start date : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
@@ -51,7 +52,8 @@ async function getContractStartDate(url, apiAuthKey, userLogin, pointId) {
   try {
     return parseContractStartDate(result)
   } catch (error) {
-    const errorMessage = 'Error while processing contract start date: ' + error
+    const errorMessage =
+      'Error while processing contract start date: ' + error.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage)
     log(
diff --git a/src/core/contractTermination.js b/src/core/contractTermination.js
index 07c333d..663278b 100644
--- a/src/core/contractTermination.js
+++ b/src/core/contractTermination.js
@@ -38,7 +38,7 @@ async function terminateContract(
       serviceId
     ),
   }).catch(err => {
-    const errorMessage = 'Error while terminating contract : ' + err
+    const errorMessage = 'Error while terminating contract : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
@@ -70,7 +70,7 @@ async function terminateContract(
     return parsedReply
   } catch (error) {
     const errorMessage =
-      'Error while parsing user contract termination: ' + error
+      'Error while parsing user contract termination: ' + error.message
     log('error', errorMessage)
     log('error', `Enedis issue ${JSON.stringify(parsedReply.Envelope.Body)}`)
     Sentry.captureException(errorMessage, {
diff --git a/src/core/contractVerification.js b/src/core/contractVerification.js
index a224201..bb35911 100644
--- a/src/core/contractVerification.js
+++ b/src/core/contractVerification.js
@@ -31,7 +31,7 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
     headers: sgeHeaders,
     xml: rechercherServicesSouscritsMesures(appLogin, contractId, pointId),
   }).catch(err => {
-    const errorMessage = 'Error while verifying contract : ' + err
+    const errorMessage = 'Error while verifying contract : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
@@ -72,7 +72,7 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
       return currentContract.serviceSouscritId
     return null
   } catch (error) {
-    const errorMessage = 'Error while parsing user contract: ' + error
+    const errorMessage = 'Error while parsing user contract: ' + error.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
diff --git a/src/core/findUserAddress.js b/src/core/findUserAddress.js
index 6882c8c..4f7b51d 100644
--- a/src/core/findUserAddress.js
+++ b/src/core/findUserAddress.js
@@ -30,7 +30,7 @@ async function findUserAddress(url, apiAuthKey, userLogin, pointId) {
     headers: sgeHeaders,
     xml: consulterDonneesTechniquesContractuelles(pointId, userLogin, false),
   }).catch(err => {
-    const errorMessage = 'Error while fetching user : ' + err
+    const errorMessage = 'Error while fetching user : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
@@ -52,7 +52,7 @@ async function findUserAddress(url, apiAuthKey, userLogin, pointId) {
   try {
     return parseUserAddress(result)
   } catch (error) {
-    const errorMessage = 'Error while processing user address: ' + error
+    const errorMessage = 'Error while processing user address: ' + error.message
     log('error', errorMessage)
     log(
       'error',
diff --git a/src/core/findUserPdl.js b/src/core/findUserPdl.js
index fd927f8..3c5bba7 100644
--- a/src/core/findUserPdl.js
+++ b/src/core/findUserPdl.js
@@ -44,7 +44,7 @@ async function findUserPdl(
       escalierEtEtageEtAppartement
     ),
   }).catch(err => {
-    const errorMessage = 'Error while finding user pdl : ' + err
+    const errorMessage = 'Error while finding user pdl : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
diff --git a/src/onDeleteAccount.js b/src/onDeleteAccount.js
index 68945d0..e3119ae 100644
--- a/src/onDeleteAccount.js
+++ b/src/onDeleteAccount.js
@@ -59,6 +59,11 @@ async function onDeleteAccount() {
       }
       const secrets = getAccountSecret()
 
+      if (!accountData?.data?.consentId) {
+        log('debug', 'no consent for this account')
+        return
+      }
+
       const userConsent = await getBoConsent(
         secrets.boBaseUrl,
         secrets.boToken,
diff --git a/src/requests/bo.js b/src/requests/bo.js
index aeb0165..8addf82 100644
--- a/src/requests/bo.js
+++ b/src/requests/bo.js
@@ -50,7 +50,7 @@ async function createBoConsent(
     )
     return data
   } catch (err) {
-    const errorMessage = 'Error while creating BO consent : ' + err
+    const errorMessage = 'Error while creating BO consent : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
@@ -95,7 +95,7 @@ async function updateBoConsent(url, token, consent, serviceId) {
     )
     return data
   } catch (err) {
-    const errorMessage = 'Error while updating BO consent : ' + err
+    const errorMessage = 'Error while updating BO consent : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
@@ -124,7 +124,7 @@ async function getBoConsent(url, token, consentId) {
     const { data } = await axios.get(`${url}/consent/${consentId}`, headers)
     return data
   } catch (err) {
-    const errorMessage = 'Error while getting BO consent : ' + err
+    const errorMessage = 'Error while getting BO consent : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
@@ -156,7 +156,7 @@ async function deleteBoConsent(url, token, consentId) {
     const { data } = await axios.delete(`${url}/consent/${consentId}`, headers)
     return data
   } catch (err) {
-    const errorMessage = 'Error while deleting BO consent : ' + err
+    const errorMessage = 'Error while deleting BO consent : ' + err.message
     log('error', errorMessage)
     Sentry.captureException(errorMessage, {
       tags: {
-- 
GitLab