From fdcf6f031045563a6abced8ea02f1d99a31eb80d Mon Sep 17 00:00:00 2001 From: Bastien DUMONT <bdumont@grandlyon.com> Date: Mon, 1 Aug 2022 12:49:38 +0000 Subject: [PATCH] feat: rename endpoints --- .gitignore | 1 - .vscode/settings.json | 22 ++++ src/index.js | 42 ++++--- src/requests/bo.js | 44 +++++++ src/requests/insee.js | 17 +++ src/{request.js => requests/sge.js} | 187 ++++++++++++---------------- 6 files changed, 190 insertions(+), 123 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/requests/bo.js create mode 100644 src/requests/insee.js rename src/{request.js => requests/sge.js} (78%) diff --git a/.gitignore b/.gitignore index b6c5e5d..097a93d 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,6 @@ desktop.ini .floo .flooignore .idea/ -.vscode/ # Default # /!\ KEEP THIS SECTION THE LAST ONE !.gitkeep diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a5d64f0 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,22 @@ +{ + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#65c89b", + "activityBar.activeBorder": "#945bc4", + "activityBar.background": "#65c89b", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#945bc4", + "activityBarBadge.foreground": "#e7e7e7", + "sash.hoverBorder": "#65c89b", + "statusBar.background": "#42b883", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#359268", + "statusBarItem.remoteBackground": "#42b883", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#42b883", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#42b88399", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.color": "#42b883" +} diff --git a/src/index.js b/src/index.js index 197ad2a..9a6fc25 100644 --- a/src/index.js +++ b/src/index.js @@ -19,18 +19,21 @@ const { parseValue, } = require('./parsing') const { - userTechnicalData, - userMaxPower, - userMesureDetailles, + consulterDonneesTechniquesContractuelles, + consultationMesuresDetailleesMaxPower, + consultationMesuresDetaillees, rechercherPoint, - activateDataCollect, - stopDataCollect, - getInseeCode, + commanderCollectePublicationMesures, + commanderArretServiceSouscritMesures, +} = require('./requests/sge') +const { updateBoConsent, createBoConsent, getBoConsent, deleteBoConsent, -} = require('./request') +} = require('./requests/bo') +const { getInseeCode } = require('./requests/insee') + moment.locale('fr') // set the language moment.tz.setDefault('Europe/Paris') // set the timezone @@ -88,13 +91,13 @@ async function start(fields, cozyParameters) { // loginUtilisateur, // fields.pointId // ) - await activateDataCollect() + await commanderCollectePublicationMesures() await updateBoConsent() } else { await getBoConsent() if (!(await verifyUserIdentity(fields))) { await deleteBoConsent() - await stopDataCollect() + await commanderArretServiceSouscritMesures() throw errors.TERMS_VERSION_MISMATCH } } @@ -175,7 +178,7 @@ async function getDataStartDate(url, apiAuthKey, userLogin, pointId) { const { response } = await soapRequest({ url: url, headers: sampleHeaders, - xml: userTechnicalData(pointId, userLogin), + xml: consulterDonneesTechniquesContractuelles(pointId, userLogin), }).catch(err => { log('error', 'technicalDataResponse') log('error', err) @@ -212,14 +215,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 +259,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 +327,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 +336,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/requests/bo.js b/src/requests/bo.js new file mode 100644 index 0000000..53323c1 --- /dev/null +++ b/src/requests/bo.js @@ -0,0 +1,44 @@ +// @ts-check +const { log } = require('cozy-konnector-libs') + +/** + * + */ +function createBoConsent() { + //TODO: Implement + log('info', `Query createBoConsent`) + throw new Error('Function not implemented.') +} + +/** + * + */ +function updateBoConsent() { + //TODO: Implement + log('info', `Query updateBoConsent`) + throw new Error('Function not implemented.') +} + +/** + * + */ +function getBoConsent() { + //TODO: Implement + log('info', `Query getBoConsent`) + throw new Error('Function not implemented.') +} +/** + * + */ +function deleteBoConsent() { + //TODO: deleteBoConsent + log('info', `Query createBoConsent`) + throw new Error('Function not implemented.') +} + +module.exports = { + createBoConsent, + updateBoConsent, + getBoConsent, + deleteBoConsent, +} diff --git a/src/requests/insee.js b/src/requests/insee.js new file mode 100644 index 0000000..fd34efe --- /dev/null +++ b/src/requests/insee.js @@ -0,0 +1,17 @@ +// @ts-check +const { log } = require('cozy-konnector-libs') + +/** + * Return inseeCode given a postalCode + * @param {string} postalCode + * @return {string} inseeCode + */ +function getInseeCode(postalCode) { + //TODO: Implement + log('info', `Query getInseeCode for postalCode ${postalCode}`) + throw new Error('Function not implemented.') +} + +module.exports = { + getInseeCode, +} diff --git a/src/request.js b/src/requests/sge.js similarity index 78% rename from src/request.js rename to src/requests/sge.js index c8bcc1b..0dd4b07 100644 --- a/src/request.js +++ b/src/requests/sge.js @@ -2,24 +2,26 @@ 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 {string} startDate + * @param {string} endDate + * @param {'COURBE' | 'ENERGIE' | 'PMAX'} mesureType + * @param {'EA' | 'PA' | 'PMA'} unit * @returns {string} */ -function userMesureDetailles( +function consultationMesuresDetaillees( pointId, appLogin, - startDt, - endDt, + startDate, + endDate, mesureType = 'ENERGIE', unit = 'EA' ) { log( 'info', - `Query data ${mesureType}/${unit} between ${startDt} and ${endDt}` + `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/" @@ -35,8 +37,8 @@ function userMesureDetailles( <grandeurPhysique>${unit}</grandeurPhysique> <soutirage>true</soutirage> <injection>false</injection> - <dateDebut>${startDt}</dateDebut> - <dateFin>${endDt}</dateFin> + <dateDebut>${startDate}</dateDebut> + <dateFin>${endDate}</dateFin> <mesuresCorrigees>false</mesuresCorrigees> <accordClient>true</accordClient> </demande> @@ -46,40 +48,28 @@ function userMesureDetailles( ` } -/** - * Get user technical data - * @param {number} pointId - * @param {string} appLogin - * @returns {string} - */ -function userTechnicalData(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 {string} startDate + * @param {string} endDate + * @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, + startDate, + endDate, + mesureType = 'PMAX', + unit = 'PMA' +) { + log( + 'info', + `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" @@ -90,12 +80,12 @@ 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> - <dateFin>${endDt}</dateFin> + <dateDebut>${startDate}</dateDebut> + <dateFin>${endDate}</dateFin> <mesuresPas>P1D</mesuresPas> <mesuresCorrigees>false</mesuresCorrigees> <accordClient>true</accordClient> @@ -106,15 +96,40 @@ 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 * @param {string} postalCode + * @param {string} inseeCode * @param {string} address * @returns {string} PDL */ function rechercherPoint(appLogin, name, postalCode, inseeCode, address) { - log('info', `Query rechercherPoint`) + log('info', `Query rechercherPoint - postal code: ${postalCode}`) 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/rechercherpoint/v2.0" @@ -144,8 +159,8 @@ function rechercherPoint(appLogin, name, postalCode, inseeCode, address) { * @param {string} pointId * @returns {*} */ -function searchServiceSouscrit(appLogin, contractId, pointId) { - log('info', `Query activateDataCollect`) +function rechercherServicesSouscritsMesures(appLogin, contractId, pointId) { + log('info', `Query rechercherServicesSouscritsMesures`) 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/rechercherservicessouscritsmesures/v1.0" @@ -173,7 +188,7 @@ function searchServiceSouscrit(appLogin, contractId, pointId) { * @param {string} endDate * @returns {*} */ -function activateDataCollect( +function commanderCollectePublicationMesures( appLogin, contractId, pointId, @@ -181,7 +196,10 @@ function activateDataCollect( startDate, endDate ) { - log('info', `Query activateDataCollect`) + log( + 'info', + `Query commanderCollectePublicationMesures - 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/commandercollectepublicationmesures/v3.0" @@ -220,15 +238,23 @@ function activateDataCollect( } /** - * + * Stop the user consent * @param {string} appLogin * @param {string} contractId * @param {string} pointId * @param {string} serviceSouscritId * @returns {*} */ -function stopDataCollect(appLogin, contractId, pointId, serviceSouscritId) { - log('info', `Query stopDataCollect`) +function commanderArretServiceSouscritMesures( + appLogin, + contractId, + pointId, + serviceSouscritId +) { + log( + 'info', + `Query commanderArretServiceSouscritMesures - serviceSouscritId: ${serviceSouscritId}` + ) 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/commanderarretservicesouscritmesures/v1.0" @@ -252,63 +278,12 @@ function stopDataCollect(appLogin, contractId, pointId, serviceSouscritId) { </soapenv:Envelope>` } -/** - * Return inseeCode given a postalCode - * @param {string} postalCode - * @return {string} inseeCode - */ -function getInseeCode(postalCode) { - //TODO: Implement - log('info', `Query getInseeCode for postalCode ${postalCode}`) - throw new Error('Function not implemented.') -} - -/** - * - */ -function createBoConsent() { - //TODO: Implement - log('info', `Query createBoConsent`) - throw new Error('Function not implemented.') -} - -/** - * - */ -function updateBoConsent() { - //TODO: Implement - log('info', `Query updateBoConsent`) - throw new Error('Function not implemented.') -} - -/** - * - */ -function getBoConsent() { - //TODO: Implement - log('info', `Query getBoConsent`) - throw new Error('Function not implemented.') -} -/** - * - */ -function deleteBoConsent() { - //TODO: deleteBoConsent - log('info', `Query createBoConsent`) - throw new Error('Function not implemented.') -} - module.exports = { - userTechnicalData, - userMaxPower, - userMesureDetailles, + consulterDonneesTechniquesContractuelles, + consultationMesuresDetailleesMaxPower, + consultationMesuresDetaillees, rechercherPoint, - searchServiceSouscrit, - activateDataCollect, - stopDataCollect, - getInseeCode, - createBoConsent, - updateBoConsent, - getBoConsent, - deleteBoConsent, + rechercherServicesSouscritsMesures, + commanderCollectePublicationMesures, + commanderArretServiceSouscritMesures, } -- GitLab