From 32f347679af84f6424fccd74af7bbd537b28309b Mon Sep 17 00:00:00 2001
From: Bastien Dumont <bdumont@grandlyon.com>
Date: Mon, 18 Sep 2023 10:29:45 +0200
Subject: [PATCH] handle passerelle ko

---
 src/core/findUserPdl.js | 86 ++++++++++++++++++++++-------------------
 1 file changed, 46 insertions(+), 40 deletions(-)

diff --git a/src/core/findUserPdl.js b/src/core/findUserPdl.js
index 3c5bba7..7fdad2d 100644
--- a/src/core/findUserPdl.js
+++ b/src/core/findUserPdl.js
@@ -32,50 +32,56 @@ async function findUserPdl(
     apikey: apiAuthKey,
   }
 
-  const { response } = await soapRequest({
-    url: url,
-    headers: sgeHeaders,
-    xml: rechercherPoint(
-      appLogin,
-      lastname,
-      postalCode,
-      inseeCode,
-      address,
-      escalierEtEtageEtAppartement
-    ),
-  }).catch(err => {
-    const errorMessage = 'Error while finding user pdl : ' + err.message
-    log('error', errorMessage)
-    Sentry.captureException(errorMessage, {
-      tags: {
-        section: 'findUserPdl',
-      },
-      extra: {
-        address: address,
-        postalCode: postalCode,
-        escalierEtEtageEtAppartement: escalierEtEtageEtAppartement,
-      },
+  try {
+    const { response } = await soapRequest({
+      url: url,
+      headers: sgeHeaders,
+      xml: rechercherPoint(
+        appLogin,
+        lastname,
+        postalCode,
+        inseeCode,
+        address,
+        escalierEtEtageEtAppartement
+      ),
+    }).catch(err => {
+      const errorMessage = 'Error while finding user pdl : ' + err.message
+      log('error', errorMessage)
+      Sentry.captureException(errorMessage, {
+        tags: {
+          section: 'findUserPdl',
+        },
+        extra: {
+          address: address,
+          postalCode: postalCode,
+          escalierEtEtageEtAppartement: escalierEtEtageEtAppartement,
+        },
+      })
+      throw new Error(errors.VENDOR_DOWN)
     })
-    throw new Error(errors.VENDOR_DOWN)
-  })
 
-  const parsedReply = await xml2js.parseStringPromise(response.body, {
-    tagNameProcessors: [parseTags],
-    valueProcessors: [parseValue],
-    explicitArray: false,
-  })
+    const parsedReply = await xml2js.parseStringPromise(response.body, {
+      tagNameProcessors: [parseTags],
+      valueProcessors: [parseValue],
+      explicitArray: false,
+    })
 
-  try {
-    return parseUserPdl(parsedReply)
-  } catch (error) {
-    log('warn', 'Error while parsing user PDL: ' + error)
-    if (parsedReply.Envelope.Body.Fault) {
-      log(
-        'warn',
-        `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
-      )
+    try {
+      return parseUserPdl(parsedReply)
+    } catch (error) {
+      log('warn', 'Error while parsing user PDL: ' + error)
+      if (parsedReply.Envelope.Body.Fault) {
+        log(
+          'warn',
+          `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}`
+        )
+      }
+      return null
     }
-    return null
+  } catch (error) {
+    log('error', 'Error while findingUserPdl', error)
+    Sentry.captureException(error)
+    throw new Error(errors.VENDOR_DOWN)
   }
 }
 
-- 
GitLab