From 2df90c7c310601ef6f05d93202c035c66b9b8c7b Mon Sep 17 00:00:00 2001
From: Bastien Dumont <bdumont@grandlyon.com>
Date: Tue, 27 Feb 2024 14:38:18 +0100
Subject: [PATCH] add service ID

---
 src/core/contractVerification.js | 8 ++++++--
 src/helpers/catch.js             | 8 +++++---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/core/contractVerification.js b/src/core/contractVerification.js
index db53cb5..c002bce 100644
--- a/src/core/contractVerification.js
+++ b/src/core/contractVerification.js
@@ -46,7 +46,11 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
     throw new Error(errors.CAPTCHA_RESOLUTION_FAILED)
   })
 
-  catchRequestReject(response.body)
+  try {
+    catchRequestReject(response.body)
+  } catch (error) {
+    throw new Error(errors.CAPTCHA_RESOLUTION_FAILED)
+  }
 
   const parsedReply = await xml2js.parseStringPromise(response.body, {
     tagNameProcessors: [parseTags],
@@ -82,7 +86,7 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
         section: 'verifyContract',
       },
     })
-    if (parsedReply.Envelope.Body.Fault) {
+    if (parsedReply?.Envelope?.Body?.Fault) {
       log(
         'error',
         `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
diff --git a/src/helpers/catch.js b/src/helpers/catch.js
index 7598f65..508cff5 100644
--- a/src/helpers/catch.js
+++ b/src/helpers/catch.js
@@ -1,7 +1,7 @@
-const { log, errors } = require('cozy-konnector-libs')
+const { log } = require('cozy-konnector-libs')
 
 /**
- * Throw a VENDOR_DOWN error if the response contains a  "Request Rejected"
+ * Throw an error if the response contains a  "Request Rejected"
  * Enedis might send a 429 status but the F5 always transform it to a 200
  * @param {string} response
  * @example <html><head><title>Request Rejected</title></head>
@@ -9,9 +9,11 @@ const { log, errors } = require('cozy-konnector-libs')
  */
 function catchRequestReject(response) {
   if (response.includes('Request Rejected')) {
+    const supportID = response.replace(/\D/g, '')
     log('debug', response.slice(0, 100))
+    log('error', `Support ID : ${supportID}`)
     log('error', 'Request Rejected')
-    throw new Error(errors.VENDOR_DOWN)
+    throw new Error('Request Rejected')
   }
 }
 
-- 
GitLab