From 49bd15e7440cfa913402b978aee3732968290ee0 Mon Sep 17 00:00:00 2001 From: build-token <build-token> Date: Wed, 5 Oct 2022 07:36:35 +0000 Subject: [PATCH] publish: Merge branch 'feat/US847-consents-city' into 'main' generated from commit 25ec59f50ff3d638da883782bfb0f90bbcd143e1 --- index.js | 221 ++++----------------------------------------- onDeleteAccount.js | 104 ++++----------------- 2 files changed, 39 insertions(+), 286 deletions(-) diff --git a/index.js b/index.js index 147ba3a..c4e1c73 100644 --- a/index.js +++ b/index.js @@ -39,8 +39,8 @@ const { terminateContract, getContractStartDate, } = __webpack_require__(1595) -const { getAccount, saveAccountData } = __webpack_require__(1605) -const { isLocal } = __webpack_require__(1606) +const { getAccount, saveAccountData } = __webpack_require__(1604) +const { isLocal } = __webpack_require__(1605) moment.locale('fr') // set the language moment.tz.setDefault('Europe/Paris') // set the timezone @@ -124,7 +124,8 @@ async function start(fields, cozyParameters) { user.firstname, user.address, user.postalCode, - user.inseeCode + user.inseeCode, + user.city ) // handle user contract start date in order to preperly request data @@ -223530,18 +223531,6 @@ function parseContractStartDate(result) { 'dateDerniereModificationFormuleTarifaireAcheminement' ] } -/** - * Return User address - * @param {string} result - * @returns {Address} - */ -function parseUserAddress(result) { - log('info', 'Parsing user Address') - const json = JSON.stringify(result) - return JSON.parse(json)['Envelope']['Body'][ - 'consulterDonneesTechniquesContractuellesResponse' - ]['point']['donneesGenerales']['adresseInstallation'] -} /** * Return User contract start date @@ -223640,24 +223629,6 @@ function parseValue(value, name) { return value } -/** - * Remove SGE useless multiple white spaces - * @param {string} str - * @returns {string} - */ -function removeMultipleSpaces(str) { - return str.replace(/ +/g, ' ') -} - -/** - * Remove SGE useless multiple white spaces - * @param {string} str - * @returns {string} - */ -function removeAddressnumber(str) { - return str.replace(/[0-9]|b |B |T |t /g, '') -} - module.exports = { parseSgeXmlData, formateDataForDoctype, @@ -223667,10 +223638,7 @@ module.exports = { parseContracts, parseContractStartDate, parseServiceId, - parseUserAddress, checkContractExists, - removeMultipleSpaces, - removeAddressnumber, } @@ -223782,11 +223750,7 @@ function consultationMesuresDetailleesMaxPower( * @param {string} appLogin * @returns {string} */ -function consulterDonneesTechniquesContractuelles( - pointId, - appLogin, - consent = true -) { +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/" @@ -223797,7 +223761,7 @@ function consulterDonneesTechniquesContractuelles( <v2:consulterDonneesTechniquesContractuelles> <pointId>${pointId}</pointId> <loginUtilisateur>${appLogin}</loginUtilisateur> - <autorisationClient>${consent}</autorisationClient> + <autorisationClient>true</autorisationClient> </v2:consulterDonneesTechniquesContractuelles> </soapenv:Body> </soapenv:Envelope> @@ -223809,45 +223773,14 @@ function consulterDonneesTechniquesContractuelles( * @param {string} name * @param {string} postalCode * @param {string} inseeCode - * @param {string} address - * @param {string} [escalierEtEtageEtAppartement] + * @param {string} [address] * @returns {string} PDL */ -function rechercherPoint( - appLogin, - name, - postalCode, - inseeCode, - address, - escalierEtEtageEtAppartement -) { +function rechercherPoint(appLogin, name, postalCode, inseeCode, address) { log( 'info', - `Query rechercherPoint - postal code / insee code: ${postalCode} / ${inseeCode}` + `Query rechercherPoint - postal code : ${postalCode} / insee code: ${inseeCode}` ) - if (escalierEtEtageEtAppartement) { - 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" - xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0"> - <soapenv:Header/> - <soapenv:Body> - <v2:rechercherPoint> - <criteres> - <adresseInstallation> - <escalierEtEtageEtAppartement>${escalierEtEtageEtAppartement}</escalierEtEtageEtAppartement> - <numeroEtNomVoie>${address}</numeroEtNomVoie> - <codePostal>${postalCode}</codePostal> - <codeInseeCommune>${inseeCode}</codeInseeCommune> - </adresseInstallation> - <nomClientFinalOuDenominationSociale>${name}</nomClientFinalOuDenominationSociale> - <rechercheHorsPerimetre>true</rechercheHorsPerimetre> - </criteres> - <loginUtilisateur>${appLogin}</loginUtilisateur> - </v2:rechercherPoint> - </soapenv:Body> - </soapenv:Envelope>` - } 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" @@ -224022,6 +223955,7 @@ const { default: axios } = __webpack_require__(1558) * @param {string} address * @param {string} postalCode * @param {string} inseeCode + * @param {string} city * @returns {Promise<Consent>} */ async function createBoConsent( @@ -224032,7 +223966,8 @@ async function createBoConsent( firstname, address, postalCode, - inseeCode + inseeCode, + city ) { log('info', `Query createBoConsent`) const headers = { @@ -224051,6 +223986,7 @@ async function createBoConsent( address, postalCode, inseeCode, + city, }, headers ) @@ -228069,7 +228005,6 @@ const { terminateContract } = __webpack_require__(1598) const { verifyContract } = __webpack_require__(1599) const { findUserPdl } = __webpack_require__(1601) const { verifyUserIdentity } = __webpack_require__(1602) -const { findUserAddress } = __webpack_require__(1604) module.exports = { activateContract, @@ -228078,7 +228013,6 @@ module.exports = { verifyContract, findUserPdl, verifyUserIdentity, - findUserAddress, } @@ -228430,8 +228364,7 @@ async function findUserPdl( name, address, postalCode, - inseeCode, - escalierEtEtageEtAppartement = '' + inseeCode ) { log('info', 'Fetching user data') const sgeHeaders = { @@ -228442,14 +228375,7 @@ async function findUserPdl( const { response } = await soapRequest({ url: url, headers: sgeHeaders, - xml: rechercherPoint( - appLogin, - name, - postalCode, - inseeCode, - address, - escalierEtEtageEtAppartement - ), + xml: rechercherPoint(appLogin, name, postalCode, inseeCode, address), }).catch(err => { log('error', 'rechercherPointResponse') log('error', err) @@ -228472,7 +228398,7 @@ async function findUserPdl( `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}` ) } - return null + throw errors.LOGIN_FAILED } } @@ -228487,11 +228413,6 @@ module.exports = { findUserPdl } const { log, errors } = __webpack_require__(1) const { findUserPdl } = __webpack_require__(1601) const { getInseeCode } = __webpack_require__(1603) -const { findUserAddress } = __webpack_require__(1604) -const { - removeMultipleSpaces, - removeAddressnumber, -} = __webpack_require__(1555) /** * Verify user identity @@ -228516,8 +228437,7 @@ async function verifyUserIdentity( inseeCode = await getInseeCode(fields.postalCode, fields.city) } - // First try with user adresse - let pdl = await findUserPdl( + const pdl = await findUserPdl( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, @@ -228527,50 +228447,8 @@ async function verifyUserIdentity( inseeCode ) - if (!pdl) { - log('warn', 'Second chance for sge onboarding') - // Backup verification - const userAddress = await findUserAddress( - baseUrl, - apiAuthKey, - loginUtilisateur, - fields.pointId - ) - - const escalierEtEtageEtAppartement = userAddress.escalierEtEtageEtAppartement - ? removeMultipleSpaces(userAddress.escalierEtEtageEtAppartement) - : '' - - pdl = await findUserPdl( - `${baseUrl}/enedis_SDE_recherche-point/1.0`, - apiAuthKey, - loginUtilisateur, - fields.lastname, - removeMultipleSpaces(userAddress.numeroEtNomVoie), - userAddress.codePostal, - userAddress.commune.$.code, - escalierEtEtageEtAppartement - ) - - // Third try, remove address number because it's buggy on SGE side - if (!pdl) { - log('warn', 'Last chance onboarding for sge') - pdl = await findUserPdl( - `${baseUrl}/enedis_SDE_recherche-point/1.0`, - apiAuthKey, - loginUtilisateur, - fields.lastname, - removeMultipleSpaces(removeAddressnumber(userAddress.numeroEtNomVoie)), - userAddress.codePostal, - userAddress.commune.$.code, - escalierEtEtageEtAppartement - ) - } - } - if (fields.pointId != pdl) { log('error', 'PointId does not match') - if (isAlternateStart) { throw errors.TERMS_VERSION_MISMATCH } else { @@ -228585,6 +228463,7 @@ async function verifyUserIdentity( inseeCode, postalCode: fields.postalCode, address: fields.address, + city: fields.city, } } @@ -228640,68 +228519,8 @@ module.exports = { /* 1604 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -// @ts-check -const { log, errors } = __webpack_require__(1) -const soapRequest = __webpack_require__(1331) -const { - parseTags, - parseValue, - parseUserAddress, -} = __webpack_require__(1555) -const xml2js = __webpack_require__(1513) -const { consulterDonneesTechniquesContractuelles } = __webpack_require__(1556) - -/** - * Get user contract start date - * @param {string} url - * @param {string} apiAuthKey - * @param {string} userLogin - * @param {number} pointId - * @returns {Promise<Address>} - */ -async function findUserAddress(url, apiAuthKey, userLogin, pointId) { - log('info', 'Fetching user address') - const sgeHeaders = { - 'Content-Type': 'text/xml;charset=UTF-8', - apikey: apiAuthKey, - } - - const { response } = await soapRequest({ - url: `${url}/enedis_SGE_ConsultationDonneesTechniquesContractuelles/1.0`, - headers: sgeHeaders, - xml: consulterDonneesTechniquesContractuelles(pointId, userLogin, false), - }).catch(err => { - log('error', 'Error while fetching user : ' + err) - throw errors.VENDOR_DOWN - }) - - const result = await xml2js.parseStringPromise(response.body, { - tagNameProcessors: [parseTags], - valueProcessors: [parseValue], - explicitArray: false, - }) - - try { - return parseUserAddress(result) - } catch (error) { - log('error', 'Error while processing user address: ' + error) - log( - 'error', - `Enedis issue ${result.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${result.Envelope.Body.Fault.faultstring}` - ) - throw errors.NOT_EXISTING_DIRECTORY - } -} - -module.exports = { findUserAddress } - - -/***/ }), -/* 1605 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - const { log, updateOrCreate } = __webpack_require__(1) -const { isLocal } = __webpack_require__(1606) +const { isLocal } = __webpack_require__(1605) const cozyClient = __webpack_require__(485) async function saveAccountData(accountId, accountData) { @@ -228744,7 +228563,7 @@ module.exports = { getAccount, saveAccountData, getAccountForDelete } /***/ }), -/* 1606 */ +/* 1605 */ /***/ ((module) => { function isLocal() { diff --git a/onDeleteAccount.js b/onDeleteAccount.js index 0bf2ef3..bcf1adb 100644 --- a/onDeleteAccount.js +++ b/onDeleteAccount.js @@ -222861,18 +222861,6 @@ function parseContractStartDate(result) { 'dateDerniereModificationFormuleTarifaireAcheminement' ] } -/** - * Return User address - * @param {string} result - * @returns {Address} - */ -function parseUserAddress(result) { - log('info', 'Parsing user Address') - const json = JSON.stringify(result) - return JSON.parse(json)['Envelope']['Body'][ - 'consulterDonneesTechniquesContractuellesResponse' - ]['point']['donneesGenerales']['adresseInstallation'] -} /** * Return User contract start date @@ -222971,24 +222959,6 @@ function parseValue(value, name) { return value } -/** - * Remove SGE useless multiple white spaces - * @param {string} str - * @returns {string} - */ -function removeMultipleSpaces(str) { - return str.replace(/ +/g, ' ') -} - -/** - * Remove SGE useless multiple white spaces - * @param {string} str - * @returns {string} - */ -function removeAddressnumber(str) { - return str.replace(/[0-9]|b |B |T |t /g, '') -} - module.exports = { parseSgeXmlData, formateDataForDoctype, @@ -222998,10 +222968,7 @@ module.exports = { parseContracts, parseContractStartDate, parseServiceId, - parseUserAddress, checkContractExists, - removeMultipleSpaces, - removeAddressnumber, } @@ -223113,11 +223080,7 @@ function consultationMesuresDetailleesMaxPower( * @param {string} appLogin * @returns {string} */ -function consulterDonneesTechniquesContractuelles( - pointId, - appLogin, - consent = true -) { +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/" @@ -223128,7 +223091,7 @@ function consulterDonneesTechniquesContractuelles( <v2:consulterDonneesTechniquesContractuelles> <pointId>${pointId}</pointId> <loginUtilisateur>${appLogin}</loginUtilisateur> - <autorisationClient>${consent}</autorisationClient> + <autorisationClient>true</autorisationClient> </v2:consulterDonneesTechniquesContractuelles> </soapenv:Body> </soapenv:Envelope> @@ -223140,45 +223103,14 @@ function consulterDonneesTechniquesContractuelles( * @param {string} name * @param {string} postalCode * @param {string} inseeCode - * @param {string} address - * @param {string} [escalierEtEtageEtAppartement] + * @param {string} [address] * @returns {string} PDL */ -function rechercherPoint( - appLogin, - name, - postalCode, - inseeCode, - address, - escalierEtEtageEtAppartement -) { +function rechercherPoint(appLogin, name, postalCode, inseeCode, address) { log( 'info', - `Query rechercherPoint - postal code / insee code: ${postalCode} / ${inseeCode}` + `Query rechercherPoint - postal code : ${postalCode} / insee code: ${inseeCode}` ) - if (escalierEtEtageEtAppartement) { - 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" - xmlns:v1="http://www.enedis.fr/sge/b2b/technique/v1.0"> - <soapenv:Header/> - <soapenv:Body> - <v2:rechercherPoint> - <criteres> - <adresseInstallation> - <escalierEtEtageEtAppartement>${escalierEtEtageEtAppartement}</escalierEtEtageEtAppartement> - <numeroEtNomVoie>${address}</numeroEtNomVoie> - <codePostal>${postalCode}</codePostal> - <codeInseeCommune>${inseeCode}</codeInseeCommune> - </adresseInstallation> - <nomClientFinalOuDenominationSociale>${name}</nomClientFinalOuDenominationSociale> - <rechercheHorsPerimetre>true</rechercheHorsPerimetre> - </criteres> - <loginUtilisateur>${appLogin}</loginUtilisateur> - </v2:rechercherPoint> - </soapenv:Body> - </soapenv:Envelope>` - } 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" @@ -223353,6 +223285,7 @@ const { default: axios } = __webpack_require__(1558) * @param {string} address * @param {string} postalCode * @param {string} inseeCode + * @param {string} city * @returns {Promise<Consent>} */ async function createBoConsent( @@ -223363,7 +223296,8 @@ async function createBoConsent( firstname, address, postalCode, - inseeCode + inseeCode, + city ) { log('info', `Query createBoConsent`) const headers = { @@ -223382,6 +223316,7 @@ async function createBoConsent( address, postalCode, inseeCode, + city, }, headers ) @@ -227472,12 +227407,11 @@ module.exports = { terminateContract } /* 1601 */, /* 1602 */, /* 1603 */, -/* 1604 */, -/* 1605 */ +/* 1604 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const { log, updateOrCreate } = __webpack_require__(1) -const { isLocal } = __webpack_require__(1606) +const { isLocal } = __webpack_require__(1605) const cozyClient = __webpack_require__(485) async function saveAccountData(accountId, accountData) { @@ -227520,7 +227454,7 @@ module.exports = { getAccount, saveAccountData, getAccountForDelete } /***/ }), -/* 1606 */ +/* 1605 */ /***/ ((module) => { function isLocal() { @@ -227543,7 +227477,7 @@ module.exports = { isLocal, isAlpha } /***/ }), -/* 1607 */ +/* 1606 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check @@ -227552,15 +227486,15 @@ const { getAccountRev, getAccountSecret, getAccountId, -} = __webpack_require__(1608) +} = __webpack_require__(1607) const { getBoConsent, deleteBoConsent } = __webpack_require__(1557) const { terminateContract } = __webpack_require__(1598) -const { getAccountForDelete } = __webpack_require__(1605) +const { getAccountForDelete } = __webpack_require__(1604) const moment = __webpack_require__(1373) __webpack_require__(1510) moment.locale('fr') // set the language moment.tz.setDefault('Europe/Paris') // set the timezone -const { isLocal, isAlpha } = __webpack_require__(1606) +const { isLocal, isAlpha } = __webpack_require__(1605) // const ACCOUNT_ID = isLocal() ? 'default_account_id' : 'enedis-sge-grandlyon' async function onDeleteAccount() { @@ -227644,11 +227578,11 @@ module.exports = { onDeleteAccount } /***/ }), -/* 1608 */ +/* 1607 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const { log } = __webpack_require__(1) -const { isLocal } = __webpack_require__(1606) +const { isLocal } = __webpack_require__(1605) function getAccountId() { log('info', `getAccountId`) @@ -227779,7 +227713,7 @@ module.exports = { getAccountId, getAccountRev, getAccountSecret } /******/ // module cache are used so entry inlining is disabled /******/ // startup /******/ // Load entry module and return exports -/******/ var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 1607); +/******/ var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 1606); /******/ /******/ })() ; \ No newline at end of file -- GitLab