From 909863e7f1c2e50e23e6381d031464770f987cad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20PAILHAREY?= <rpailharey@grandlyon.com> Date: Mon, 2 Oct 2023 12:09:28 +0000 Subject: [PATCH] feat: update consulterMesuresDetaillees to V3 --- __tests__/helpers/parsing.spec.js | 4 +- __tests__/requests/sge.spec.js | 20 ++++---- src/helpers/parsing.js | 4 +- src/index.js | 6 +-- src/requests/sge.js | 76 ++++++++++++++----------------- 5 files changed, 54 insertions(+), 56 deletions(-) diff --git a/__tests__/helpers/parsing.spec.js b/__tests__/helpers/parsing.spec.js index b2e6d0c..c6fcc97 100644 --- a/__tests__/helpers/parsing.spec.js +++ b/__tests__/helpers/parsing.spec.js @@ -104,9 +104,9 @@ describe('parsing', () => { const result = { Envelope: { Body: { - consulterMesuresDetailleesResponse: { + consulterMesuresDetailleesResponseV3: { grandeur: { - mesure: { + points: { v: 14361, d: '2021-08-01T00:00:00.000+02:00', }, diff --git a/__tests__/requests/sge.spec.js b/__tests__/requests/sge.spec.js index 86ae692..11dc31d 100644 --- a/__tests__/requests/sge.spec.js +++ b/__tests__/requests/sge.spec.js @@ -24,8 +24,9 @@ describe('Sge routes', () => { valueProcessors: [parseValue], explicitArray: false, }) - const data = parsedReply.Envelope.Body.consulterMesuresDetaillees.demande - expect(Object.keys(data).length).toEqual(10) + const data = + parsedReply.Envelope.Body.consulterMesuresDetailleesV3.demande + expect(Object.keys(data).length).toEqual(9) expect(data.mesuresTypeCode).toEqual('ENERGIE') expect(data.grandeurPhysique).toEqual('EA') }) @@ -43,8 +44,9 @@ describe('Sge routes', () => { valueProcessors: [parseValue], explicitArray: false, }) - const data = parsedReply.Envelope.Body.consulterMesuresDetaillees.demande - expect(Object.keys(data).length).toEqual(10) + const data = + parsedReply.Envelope.Body.consulterMesuresDetailleesV3.demande + expect(Object.keys(data).length).toEqual(9) expect(data.mesuresTypeCode).toEqual('mesurePouet') expect(data.grandeurPhysique).toEqual('POUET') }) @@ -62,8 +64,9 @@ describe('Sge routes', () => { valueProcessors: [parseValue], explicitArray: false, }) - const data = parsedReply.Envelope.Body.consulterMesuresDetaillees.demande - expect(Object.keys(data).length).toEqual(11) + const data = + parsedReply.Envelope.Body.consulterMesuresDetailleesV3.demande + expect(Object.keys(data).length).toEqual(10) expect(data.mesuresPas).toEqual('P1D') expect(data.mesuresTypeCode).toEqual('PMAX') expect(data.grandeurPhysique).toEqual('PMA') @@ -82,8 +85,9 @@ describe('Sge routes', () => { valueProcessors: [parseValue], explicitArray: false, }) - const data = parsedReply.Envelope.Body.consulterMesuresDetaillees.demande - expect(Object.keys(data).length).toEqual(11) + const data = + parsedReply.Envelope.Body.consulterMesuresDetailleesV3.demande + expect(Object.keys(data).length).toEqual(10) expect(data.mesuresTypeCode).toEqual('mesurePouet') expect(data.grandeurPhysique).toEqual('POUET') }) diff --git a/src/helpers/parsing.js b/src/helpers/parsing.js index b3b87c0..c947599 100644 --- a/src/helpers/parsing.js +++ b/src/helpers/parsing.js @@ -78,8 +78,8 @@ function parseSgeXmlData(result) { log('info', 'Parsing list of documents') const json = JSON.stringify(result) return JSON.parse(json)['Envelope']['Body'][ - 'consulterMesuresDetailleesResponse' - ]['grandeur']['mesure'] + 'consulterMesuresDetailleesResponseV3' + ]['grandeur']['points'] } /** diff --git a/src/index.js b/src/index.js index e094bb3..77d9a66 100644 --- a/src/index.js +++ b/src/index.js @@ -368,19 +368,19 @@ async function gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) { startDailyDateString = startDailyDate.format('YYYY-MM-DD') await getData( - `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees/1.0`, + `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0`, apiAuthKey, sgeLogin, pointId ) await getMaxPowerData( - `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees/1.0`, + `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0`, apiAuthKey, sgeLogin, pointId ) await getDataHalfHour( - `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees/1.0`, + `${baseUrl}/enedis_SGE_ConsultationMesuresDetaillees_v3/1.0`, apiAuthKey, sgeLogin, pointId diff --git a/src/requests/sge.js b/src/requests/sge.js index 9bc1562..c3c2aea 100644 --- a/src/requests/sge.js +++ b/src/requests/sge.js @@ -24,26 +24,23 @@ function consultationMesuresDetaillees( `Query consultationMesuresDetaillees - ${mesureType}/${unit} between ${startDate} and ${endDate}` ) return `<?xml version='1.0' encoding='utf-8'?> - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" - xmlns:v2="http://www.enedis.fr/sge/b2b/services/consultationmesuresdetaillees/v2.0" - xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0"> - <soapenv:Header/> - <soapenv:Body> - <v2:consulterMesuresDetaillees> - <demande> - <initiateurLogin>${appLogin}</initiateurLogin> - <pointId>${pointId}</pointId> - <mesuresTypeCode>${mesureType}</mesuresTypeCode> - <grandeurPhysique>${unit}</grandeurPhysique> - <soutirage>true</soutirage> - <injection>false</injection> - <dateDebut>${startDate}</dateDebut> - <dateFin>${endDate}</dateFin> - <mesuresCorrigees>false</mesuresCorrigees> - <accordClient>true</accordClient> - </demande> - </v2:consulterMesuresDetaillees> - </soapenv:Body> + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://www.enedis.fr/sge/b2b/services/consultationmesuresdetaillees/common"> + <soapenv:Header/> + <soapenv:Body> + <com:consulterMesuresDetailleesV3> + <demande> + <initiateurLogin>${appLogin}</initiateurLogin> + <pointId>${pointId}</pointId> + <mesuresTypeCode>${mesureType}</mesuresTypeCode> + <grandeurPhysique>${unit}</grandeurPhysique> + <dateDebut>${startDate}</dateDebut> + <dateFin>${endDate}</dateFin> + <mesuresCorrigees>false</mesuresCorrigees> + <sens>SOUTIRAGE</sens> + <cadreAcces>ACCORD_CLIENT</cadreAcces> + </demande> + </com:consulterMesuresDetailleesV3> + </soapenv:Body> </soapenv:Envelope> ` } @@ -71,27 +68,24 @@ function consultationMesuresDetailleesMaxPower( `Query consultationMesuresDetaillees - ${mesureType}/${unit} between ${startDate} and ${endDate}` ) return `<?xml version='1.0' encoding='utf-8'?> - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" - xmlns:v2="http://www.enedis.fr/sge/b2b/services/consultationmesuresdetaillees/v2.0" - xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0"> - <soapenv:Header/> - <soapenv:Body> - <v2:consulterMesuresDetaillees> - <demande> - <initiateurLogin>${appLogin}</initiateurLogin> - <pointId>${pointId}</pointId> - <mesuresTypeCode>${mesureType}</mesuresTypeCode> - <grandeurPhysique>${unit}</grandeurPhysique> - <soutirage>true</soutirage> - <injection>false</injection> - <dateDebut>${startDate}</dateDebut> - <dateFin>${endDate}</dateFin> - <mesuresPas>P1D</mesuresPas> - <mesuresCorrigees>false</mesuresCorrigees> - <accordClient>true</accordClient> - </demande> - </v2:consulterMesuresDetaillees> - </soapenv:Body> + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://www.enedis.fr/sge/b2b/services/consultationmesuresdetaillees/common"> + <soapenv:Header/> + <soapenv:Body> + <com:consulterMesuresDetailleesV3> + <demande> + <initiateurLogin>${appLogin}</initiateurLogin> + <pointId>${pointId}</pointId> + <mesuresTypeCode>${mesureType}</mesuresTypeCode> + <grandeurPhysique>${unit}</grandeurPhysique> + <dateDebut>${startDate}</dateDebut> + <dateFin>${endDate}</dateFin> + <mesuresPas>P1D</mesuresPas> + <mesuresCorrigees>false</mesuresCorrigees> + <sens>SOUTIRAGE</sens> + <cadreAcces>ACCORD_CLIENT</cadreAcces> + </demande> + </com:consulterMesuresDetailleesV3> + </soapenv:Body> </soapenv:Envelope> ` } -- GitLab