From da28f531cf1bdd47eeebc8772824dc4de87e74ba Mon Sep 17 00:00:00 2001
From: Guilhem CARRON <gcarron@grandlyon.com>
Date: Thu, 6 Oct 2022 13:40:54 +0000
Subject: [PATCH] fix: prevent unavailable backoffice to crash the app

---
 src/models/initialisationSteps.model.ts   | 1 -
 src/services/customPopup.service.test.ts  | 5 +++--
 src/services/customPopup.service.ts       | 9 ++++++---
 src/services/initialization.service.ts    | 8 ++++----
 src/services/partnersInfo.service.spec.ts | 5 +++--
 src/services/partnersInfo.service.ts      | 8 ++++++--
 6 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/src/models/initialisationSteps.model.ts b/src/models/initialisationSteps.model.ts
index f8584e812..8f2516a38 100644
--- a/src/models/initialisationSteps.model.ts
+++ b/src/models/initialisationSteps.model.ts
@@ -15,7 +15,6 @@ export enum InitStepsErrors {
   ECOGESTURE_ERROR = 'ecogesture_error',
   CHALLENGES_ERROR = 'challenges_error',
   ANALYSIS_ERROR = 'analysis_error',
-  PRICES_ERROR = 'prices_error',
   CONSOS_ERROR = 'consos_error',
   PARTNERS_ERROR = 'partners_error',
   NETWORK_ERROR = 'network_error',
diff --git a/src/services/customPopup.service.test.ts b/src/services/customPopup.service.test.ts
index 1c15f8f3b..7b30e3b92 100644
--- a/src/services/customPopup.service.test.ts
+++ b/src/services/customPopup.service.test.ts
@@ -21,11 +21,12 @@ describe('PartnersInfo service', () => {
 
   it('should return an error', async () => {
     mockClient.getStackClient().fetchJSON.mockRejectedValue(new Error())
+    let res
     try {
-      await customPupopService.getCustomPopup()
+      res = await customPupopService.getCustomPopup()
       expect(true).toBe(false)
     } catch (error) {
-      expect(error).toEqual(new Error('Error while getting customPopup'))
+      expect(res).toBe(undefined)
     }
   })
 })
diff --git a/src/services/customPopup.service.ts b/src/services/customPopup.service.ts
index ef6fcb497..38e77cba7 100644
--- a/src/services/customPopup.service.ts
+++ b/src/services/customPopup.service.ts
@@ -1,7 +1,8 @@
 import { Client } from 'cozy-client'
 import { CustomPopup } from 'models/customPopup.model'
 import EnvironmentService from './environment.service'
-
+import logger from 'cozy-logger'
+const log = logger.namespace('customPupopService')
 export default class CustomPupopService {
   private readonly _client: Client
   constructor(_client: Client) {
@@ -24,8 +25,10 @@ export default class CustomPupopService {
         .fetchJSON('GET', remoteUrl)
       return result as CustomPopup
     } catch (error) {
-      console.error(`getCustomPopup: Failed to get custom popup:${error}`)
-      throw new Error('Error while getting customPopup')
+      log(
+        'error',
+        `getCustomPopup: Failed to get custom popup:${JSON.stringify(error)}`
+      )
     }
   }
 }
diff --git a/src/services/initialization.service.ts b/src/services/initialization.service.ts
index e199dff50..288edbc9f 100644
--- a/src/services/initialization.service.ts
+++ b/src/services/initialization.service.ts
@@ -1,4 +1,4 @@
-import { Client, Q, QueryDefinition } from 'cozy-client'
+import { Client } from 'cozy-client'
 import challengeEntityData from 'db/challengeEntity.json'
 import duelEntityData from 'db/duelEntity.json'
 import ecogestureData from 'db/ecogestureData.json'
@@ -43,7 +43,8 @@ import FluidPricesService from './fluidsPrices.service'
 import ProfileEcogestureService from './profileEcogesture.service'
 import ProfileTypeEntityService from './profileTypeEntity.service'
 import TermsService from './terms.service'
-
+import logger from 'cozy-logger'
+const cozyLog = logger.namespace('initializationService')
 export default class InitializationService {
   private readonly _client: Client
   private readonly _setinitStep: React.Dispatch<React.SetStateAction<InitSteps>>
@@ -240,9 +241,8 @@ export default class InitializationService {
         log.info('[Initialization] FluidPrices db created successfully')
         return true
       } catch (err) {
-        this._setinitStepError(InitStepsErrors.PRICES_ERROR)
-
         log.error('Initialization error - initFluidPrices: ', err)
+        cozyLog('error', `Initialization error - initFluidPrices: ${err}`)
         return false
       }
     }
diff --git a/src/services/partnersInfo.service.spec.ts b/src/services/partnersInfo.service.spec.ts
index ace20739b..ffb46973e 100644
--- a/src/services/partnersInfo.service.spec.ts
+++ b/src/services/partnersInfo.service.spec.ts
@@ -32,11 +32,12 @@ describe('PartnersInfo service', () => {
 
   it('should return an error', async () => {
     mockClient.getStackClient().fetchJSON.mockRejectedValue(new Error())
+    let res
     try {
-      await partnersInfoService.getPartnersInfo()
+      res = await partnersInfoService.getPartnersInfo()
       expect(true).toBe(false)
     } catch (error) {
-      expect(error).toEqual(new Error('Error while getting partnersInfo'))
+      expect(res).toBe(undefined)
     }
   })
 })
diff --git a/src/services/partnersInfo.service.ts b/src/services/partnersInfo.service.ts
index da6a98738..68ba53641 100644
--- a/src/services/partnersInfo.service.ts
+++ b/src/services/partnersInfo.service.ts
@@ -1,6 +1,8 @@
 import { Client } from 'cozy-client'
 import { PartnersInfo } from 'models/partnersInfo.model'
 import EnvironmentService from './environment.service'
+import logger from 'cozy-logger'
+const log = logger.namespace('partnersInfoService')
 
 export default class PartnersInfoService {
   private readonly _client: Client
@@ -24,8 +26,10 @@ export default class PartnersInfoService {
         .fetchJSON('GET', remoteUrl)
       return result as PartnersInfo
     } catch (error) {
-      console.error(`getPartnersInfo: Failed to get partners info:${error}`)
-      throw new Error('Error while getting partnersInfo')
+      log(
+        'error',
+        `getPartnersInfo: Failed to get partners info: ${JSON.stringify(error)}`
+      )
     }
   }
 }
-- 
GitLab