diff --git a/src/index.js b/src/index.js index d9b374d91b849653ecca341689014fba68f3bd89..68d211a490e59f26b6bc53ec15e0e356b37d48ec 100644 --- a/src/index.js +++ b/src/index.js @@ -20,8 +20,8 @@ const { } = require('./parsing') const { consulterDonneesTechniquesContractuelles, - userMaxPower, - userMesureDetailles, + consultationMesuresDetailleesMaxPower, + consultationMesuresDetaillees, rechercherPoint, commanderCollectePublicationMesures, stopDataCollect, @@ -212,14 +212,16 @@ async function getData(url, apiAuthKey, userLogin, pointId) { const { response } = await soapRequest({ url: url, headers: sampleHeaders, - xml: userMesureDetailles( + xml: consultationMesuresDetaillees( pointId, userLogin, startDailyDateString, - endDateString + endDateString, + 'ENERGIE', + 'EA' ), }).catch(err => { - log('error', 'userMesureDetailles') + log('error', 'consultationMesuresDetaillees') log('error', err) return err }) @@ -254,7 +256,12 @@ async function getMaxPowerData(url, apiAuthKey, userLogin, pointId) { const { response } = await soapRequest({ url: url, headers: sampleHeaders, - xml: userMaxPower(pointId, userLogin, startDailyDateString, endDateString), + xml: consultationMesuresDetailleesMaxPower( + pointId, + userLogin, + startDailyDateString, + endDateString + ), }).catch(err => { log('error', 'getMaxPowerData') log('error', err) @@ -317,7 +324,7 @@ async function getDataHalfHour(url, apiAuthKey, userLogin, pointId) { const { response } = await soapRequest({ url: url, headers: sampleHeaders, - xml: userMesureDetailles( + xml: consultationMesuresDetaillees( pointId, userLogin, increamentedStartDateString, @@ -326,7 +333,7 @@ async function getDataHalfHour(url, apiAuthKey, userLogin, pointId) { 'PA' ), }).catch(err => { - log('error', 'userMesureDetailles half-hour') + log('error', 'consultationMesuresDetaillees half-hour') log('error', err) return err }) diff --git a/src/request.js b/src/request.js index 273fb6f356a12c97f21d440d7017eb7c7e0486c5..4d5f3bf76b2f6dc3d9311e468fb6fda477395a24 100644 --- a/src/request.js +++ b/src/request.js @@ -2,14 +2,16 @@ const { log } = require('cozy-konnector-libs') /** - * Query SGE in order to get info + * Get daily data up to 36 months & P max * @param {number} pointId * @param {string} appLogin * @param {string} startDt * @param {string} endDt + * @param {'COURBE' | 'ENERGIE' | 'PMAX'} mesureType + * @param {'EA' | 'PA' | 'PMA'} unit * @returns {string} */ -function userMesureDetailles( +function consultationMesuresDetaillees( pointId, appLogin, startDt, @@ -19,7 +21,7 @@ function userMesureDetailles( ) { log( 'info', - `Query data ${mesureType}/${unit} between ${startDt} and ${endDt}` + `consultationMesuresDetaillees - ${mesureType}/${unit} between ${startDt} and ${endDt}` ) return `<?xml version='1.0' encoding='utf-8'?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" @@ -46,40 +48,28 @@ function userMesureDetailles( ` } -/** - * Get user technical data (contract start date) - * @param {number} pointId - * @param {string} appLogin - * @returns {string} - */ -function consulterDonneesTechniquesContractuelles(pointId, appLogin) { - log('info', `Query userMesureDetailles`) - 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/consulterdonneestechniquescontractuelles/v1.0" - xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0"> - <soapenv:Header/> - <soapenv:Body> - <v2:consulterDonneesTechniquesContractuelles> - <pointId>${pointId}</pointId> - <loginUtilisateur>${appLogin}</loginUtilisateur> - <autorisationClient>true</autorisationClient> - </v2:consulterDonneesTechniquesContractuelles> - </soapenv:Body> - </soapenv:Envelope> - ` -} - /** * Get user max power * @param {number} pointId * @param {string} appLogin * @param {string} startDt * @param {string} endDt + * @param {'COURBE' | 'ENERGIE' | 'PMAX'} mesureType + * @param {'EA' | 'PA' | 'PMA'} unit * @returns {string} */ -function userMaxPower(pointId, appLogin, startDt, endDt) { - log('info', `Query userMesureDetailles`) +function consultationMesuresDetailleesMaxPower( + pointId, + appLogin, + startDt, + endDt, + mesureType = 'PMAX', + unit = 'PMA' +) { + log( + 'info', + `consultationMesuresDetaillees - ${mesureType}/${unit} between ${startDt} and ${endDt}` + ) 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" @@ -90,8 +80,8 @@ function userMaxPower(pointId, appLogin, startDt, endDt) { <demande> <initiateurLogin>${appLogin}</initiateurLogin> <pointId>${pointId}</pointId> - <mesuresTypeCode>PMAX</mesuresTypeCode> - <grandeurPhysique>PMA</grandeurPhysique> + <mesuresTypeCode>${mesureType}</mesuresTypeCode> + <grandeurPhysique>${unit}</grandeurPhysique> <soutirage>true</soutirage> <injection>false</injection> <dateDebut>${startDt}</dateDebut> @@ -106,6 +96,30 @@ function userMaxPower(pointId, appLogin, startDt, endDt) { ` } +/** + * Get user technical data (contract start date) + * @param {number} pointId + * @param {string} appLogin + * @returns {string} + */ +function consulterDonneesTechniquesContractuelles(pointId, appLogin) { + log('info', `Query consulterDonneesTechniquesContractuelles`) + 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/consulterdonneestechniquescontractuelles/v1.0" + xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0"> + <soapenv:Header/> + <soapenv:Body> + <v2:consulterDonneesTechniquesContractuelles> + <pointId>${pointId}</pointId> + <loginUtilisateur>${appLogin}</loginUtilisateur> + <autorisationClient>true</autorisationClient> + </v2:consulterDonneesTechniquesContractuelles> + </soapenv:Body> + </soapenv:Envelope> + ` +} + /** * Use rechercherPoint to find user PDL if exist * @param {string} name @@ -300,8 +314,8 @@ function deleteBoConsent() { module.exports = { consulterDonneesTechniquesContractuelles, - userMaxPower, - userMesureDetailles, + consultationMesuresDetailleesMaxPower, + consultationMesuresDetaillees, rechercherPoint, searchServiceSouscrit, commanderCollectePublicationMesures,