diff --git a/index.js b/index.js index 7577d839f764b48a5abc568bc6a3c376c3c6072a..118d98e83f8d82ae28265f3ccd8ee31bce8c0967 100644 --- a/index.js +++ b/index.js @@ -32,13 +32,15 @@ const { getBoConsent, deleteBoConsent, } = __webpack_require__(1557) -const { verifyUserIdentity } = __webpack_require__(1595) -const { activateContract } = __webpack_require__(1598) -const { verifyContract } = __webpack_require__(1599) -const { terminateContract } = __webpack_require__(1601) -const { getContractStartDate } = __webpack_require__(1602) -const { getAccount, saveAccountData } = __webpack_require__(1603) -const { iSLocal } = __webpack_require__(1604) +const { + verifyUserIdentity, + activateContract, + verifyContract, + terminateContract, + getContractStartDate, +} = __webpack_require__(1595) +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 @@ -53,7 +55,7 @@ let startDailyDateString = startDailyDate.format('YYYY-MM-DD') const startLoadDate = moment().subtract(7, 'day') const endDate = moment() const endDateString = endDate.format('YYYY-MM-DD') -const ACCOUNT_ID = iSLocal() ? 'default_account_id' : 'enedis-sge-grandlyon' +const ACCOUNT_ID = isLocal() ? 'default_account_id' : 'enedis-sge-grandlyon' module.exports = new BaseKonnector(start) @@ -73,11 +75,9 @@ async function start(fields, cozyParameters) { let baseUrl = fields.wso2BaseUrl let apiAuthKey = fields.apiToken let contractId = fields.contractId - //TODO switch variable to english let sgeLogin = fields.sgeLogin let boToken = fields.boToken let boBaseUrl = fields.boBaseUrl - //TODO: Verify if condition is working in local and on build version if (cozyParameters && Object.keys(cozyParameters).length !== 0) { log('debug', 'Found COZY_PARAMETERS') baseUrl = cozyParameters.secret.wso2BaseUrl @@ -111,7 +111,7 @@ async function start(fields, cozyParameters) { */ log('info', 'User Logging...') - if (await isFirstStart(await getAccount(ACCOUNT_ID))) { + if (isFirstStart(await getAccount(ACCOUNT_ID))) { const user = await verifyUserIdentity(fields, baseUrl, apiAuthKey, sgeLogin) let consent = await createBoConsent( @@ -249,11 +249,7 @@ async function deleteConsent( pointId, userConsent.serviceID ) - await deleteBoConsent( - boBaseUrl, - boToken, - userConsent.ID ? userConsent.ID : 0 - ) + await deleteBoConsent(boBaseUrl, boToken, userConsent.ID || 0) } else { log('error', `No service id retrieved from BO`) throw errors.VENDOR_DOWN @@ -223581,6 +223577,18 @@ async function formateDataForDoctype(data) { }) } +/** + * Check if response contains contracts + * @param {string} parsedReply + * @return {boolean} + */ +function checkContractExists(parsedReply) { + const json = JSON.stringify(parsedReply) + return JSON.parse(json)['Envelope']['Body'][ + 'rechercherServicesSouscritsMesuresResponse' + ]['servicesSouscritsMesures'] +} + /** * Format tag in order to be manipulated easly * @param {string} name @@ -223616,6 +223624,7 @@ module.exports = { parseContracts, parseContractStartDate, parseServiceId, + checkContractExists, } @@ -227973,60 +227982,22 @@ module.exports = function isAxiosError(payload) { /* 1595 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -// @ts-check -const { log, errors } = __webpack_require__(1) -const { findUserPdl } = __webpack_require__(1596) -const { getInseeCode } = __webpack_require__(1597) - -/** - * Verify user identity - * @param {object} fields - * @param {string} baseUrl - * @param {string} apiAuthKey - * @param {string} loginUtilisateur - * @param {boolean} isAlternateStart - * @returns {Promise<User>} - */ -async function verifyUserIdentity( - fields, - baseUrl, - apiAuthKey, - loginUtilisateur, - isAlternateStart = false -) { - const inseeCode = await getInseeCode(fields.postalCode, fields.city) - - const pdl = await findUserPdl( - `${baseUrl}/enedis_SDE_recherche-point/1.0`, - apiAuthKey, - loginUtilisateur, - fields.lastname, - fields.address, - fields.postalCode, - inseeCode - ) - - if (fields.pointId != pdl) { - log('error', 'PointId does not match') - if (isAlternateStart) { - throw errors.TERMS_VERSION_MISMATCH - } else { - throw errors.LOGIN_FAILED - } - } +const { activateContract } = __webpack_require__(1596) +const { getContractStartDate } = __webpack_require__(1597) +const { terminateContract } = __webpack_require__(1598) +const { verifyContract } = __webpack_require__(1599) +const { findUserPdl } = __webpack_require__(1601) +const { verifyUserIdentity } = __webpack_require__(1602) - return { - lastname: fields.lastname, - firstname: fields.firstname, - pointId: fields.pointId, - inseeCode, - postalCode: fields.postalCode, - address: fields.address, - } +module.exports = { + activateContract, + getContractStartDate, + terminateContract, + verifyContract, + findUserPdl, + verifyUserIdentity, } -module.exports = { verifyUserIdentity } - /***/ }), /* 1596 */ @@ -228035,8 +228006,8 @@ module.exports = { verifyUserIdentity } // @ts-check const { log, errors } = __webpack_require__(1) const soapRequest = __webpack_require__(1331) -const { parseUserPdl, parseTags, parseValue } = __webpack_require__(1555) -const { rechercherPoint } = __webpack_require__(1556) +const { parseTags, parseValue, parseServiceId } = __webpack_require__(1555) +const { commanderCollectePublicationMesures } = __webpack_require__(1556) const xml2js = __webpack_require__(1513) /** @@ -228044,38 +228015,44 @@ const xml2js = __webpack_require__(1513) * @param {string} apiAuthKey * @param {string} appLogin * @param {string} name - * @param {string} address - * @param {string} postalCode - * @param {string} inseeCode - * @return {Promise<string | null>} User Pdl + * @param {number} pointId + * @param {string} startDate + * @param {string} endDate + * @return {Promise<number>} User contractId */ -async function findUserPdl( +async function activateContract( url, apiAuthKey, appLogin, + contractId, name, - address, - postalCode, - inseeCode + pointId, + startDate, + endDate ) { - log('info', 'Fetching user data') + log('info', 'activateContract') const sgeHeaders = { 'Content-Type': 'text/xml;charset=UTF-8', apikey: apiAuthKey, } const { response } = await soapRequest({ - url: url, + url: `${url}/enedis_SGE_CommandeCollectePublicationMesures/1.0`, headers: sgeHeaders, - xml: rechercherPoint(appLogin, name, postalCode, inseeCode, address), + xml: commanderCollectePublicationMesures( + appLogin, + contractId, + pointId, + name, + startDate, + endDate + ), }).catch(err => { - log('error', 'rechercherPointResponse') + log('error', 'commanderCollectePublicationMesures') log('error', err) throw errors.LOGIN_FAILED }) - console.log(rechercherPoint(appLogin, name, postalCode, inseeCode, address)) - const parsedReply = await xml2js.parseStringPromise(response.body, { tagNameProcessors: [parseTags], valueProcessors: [parseValue], @@ -228083,18 +228060,19 @@ async function findUserPdl( }) try { - return parseUserPdl(parsedReply) + return parseServiceId(parsedReply) } catch (error) { - log('error', 'Error while parsing user PDL: ' + error) + log('error', 'Error while activating contract: ' + error) log( 'error', `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}` ) + //TODO: handle SGT4B8: Il existe déjà plusieurs demandes en cours sur le point ? throw errors.LOGIN_FAILED } } -module.exports = { findUserPdl } +module.exports = { activateContract } /***/ }), @@ -228102,44 +228080,58 @@ module.exports = { findUserPdl } /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check -const { default: axios } = __webpack_require__(1558) const { log, errors } = __webpack_require__(1) - -const API_URL = 'https://apicarto.ign.fr/api/codes-postaux/communes' +const soapRequest = __webpack_require__(1331) +const { + parseTags, + parseValue, + parseContractStartDate, +} = __webpack_require__(1555) +const xml2js = __webpack_require__(1513) +const { consulterDonneesTechniquesContractuelles } = __webpack_require__(1556) /** - * Return inseeCode given a postalCode - * @param {string} postalCode - * @param {string} [city] - * @return {Promise<string>} inseeCode + * Get user contract start date + * @param {string} url + * @param {string} apiAuthKey + * @param {string} userLogin + * @param {number} pointId + * @returns {Promise<string>} */ -async function getInseeCode(postalCode, city) { - try { - log('info', `Query getInseeCode for postalCode ${postalCode} / ${city}`) - const response = await axios.get(`${API_URL}/${postalCode}`) +async function getContractStartDate(url, apiAuthKey, userLogin, pointId) { + log('info', 'Fetching data start date') + const sgeHeaders = { + 'Content-Type': 'text/xml;charset=UTF-8', + apikey: apiAuthKey, + } - if (response.data.length === 1) { - return response.data[0].codeCommune - } else { - if (!city) throw errors.USER_ACTION_NEEDED + const { response } = await soapRequest({ + url: `${url}/enedis_SGE_ConsultationDonneesTechniquesContractuelles/1.0`, + headers: sgeHeaders, + xml: consulterDonneesTechniquesContractuelles(pointId, userLogin), + }).catch(err => { + log('error', 'Error while fetching contract start date : ' + err) + throw errors.VENDOR_DOWN + }) - const filteredResponse = response.data.filter( - town => town.nomCommune.toLowerCase() === city.toLowerCase() - ) - return filteredResponse[0].codeCommune - } + const result = await xml2js.parseStringPromise(response.body, { + tagNameProcessors: [parseTags], + valueProcessors: [parseValue], + explicitArray: false, + }) + try { + return parseContractStartDate(result) } catch (error) { + log('error', 'Error while processing contract start date: ' + error) log( 'error', - `Query getInseeCode failed for postalCode ${postalCode} / ${city}` + `Enedis issue ${result.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${result.Envelope.Body.Fault.faultstring}` ) - throw errors.USER_ACTION_NEEDED + throw errors.NOT_EXISTING_DIRECTORY } } -module.exports = { - getInseeCode, -} +module.exports = { getContractStartDate } /***/ }), @@ -228149,51 +228141,45 @@ module.exports = { // @ts-check const { log, errors } = __webpack_require__(1) const soapRequest = __webpack_require__(1331) -const { parseTags, parseValue, parseServiceId } = __webpack_require__(1555) -const { commanderCollectePublicationMesures } = __webpack_require__(1556) +const { parseTags, parseValue } = __webpack_require__(1555) +const { commanderArretServiceSouscritMesures } = __webpack_require__(1556) const xml2js = __webpack_require__(1513) /** * @param {string} url * @param {string} apiAuthKey * @param {string} appLogin - * @param {string} name * @param {number} pointId - * @param {string} startDate - * @param {string} endDate - * @return {Promise<number>} User contractId + * @param {number} serviceId + * @return {Promise<string>} User contractId */ -async function activateContract( +async function terminateContract( url, apiAuthKey, appLogin, contractId, - name, pointId, - startDate, - endDate + serviceId ) { - log('info', 'activateContract') + log('info', 'terminateContract') const sgeHeaders = { 'Content-Type': 'text/xml;charset=UTF-8', apikey: apiAuthKey, } const { response } = await soapRequest({ - url: `${url}/enedis_SGE_CommandeCollectePublicationMesures/1.0`, + url: `${url}/enedis_SGE_CommandeArretServiceSouscritMesures/1.0`, headers: sgeHeaders, - xml: commanderCollectePublicationMesures( + xml: commanderArretServiceSouscritMesures( appLogin, contractId, pointId, - name, - startDate, - endDate + serviceId ), }).catch(err => { - log('error', 'commanderCollectePublicationMesures') + log('error', 'commanderArretServiceSouscritMesures') log('error', err) - throw errors.LOGIN_FAILED + throw errors.VENDOR_DOWN }) const parsedReply = await xml2js.parseStringPromise(response.body, { @@ -228203,19 +228189,22 @@ async function activateContract( }) try { - return parseServiceId(parsedReply) + // We don't need any action on reply for now + if (parsedReply.Envelope.Body.Fault) { + log( + 'error', + `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}` + ) + } + return parsedReply } catch (error) { - log('error', 'Error while activating contract: ' + error) - log( - 'error', - `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}` - ) - //TODO: handle SGT4B8: Il existe déjà plusieurs demandes en cours sur le point ? - throw errors.LOGIN_FAILED + log('error', 'Error while parsing user contract termination: ' + error) + log('error', `Enedis issue ${JSON.stringify(parsedReply.Envelope.Body)}`) + throw errors.VENDOR_DOWN } } -module.exports = { activateContract } +module.exports = { terminateContract } /***/ }), @@ -228225,7 +228214,12 @@ module.exports = { activateContract } // @ts-check const { log, errors } = __webpack_require__(1) const soapRequest = __webpack_require__(1331) -const { parseTags, parseValue, parseContracts } = __webpack_require__(1555) +const { + parseTags, + parseValue, + parseContracts, + checkContractExists, +} = __webpack_require__(1555) const { rechercherServicesSouscritsMesures } = __webpack_require__(1556) const xml2js = __webpack_require__(1513) const { contractState, contractLibelle } = __webpack_require__(1600) @@ -228261,6 +228255,11 @@ async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) { }) try { + if (!checkContractExists(parsedReply)) { + log('error', 'no contract found') + return null + } + const currentContracts = parseContracts(parsedReply) let currentContract = null if (Array.isArray(currentContracts)) { @@ -228323,45 +228322,43 @@ module.exports = { contractState, contractLibelle } // @ts-check const { log, errors } = __webpack_require__(1) const soapRequest = __webpack_require__(1331) -const { parseTags, parseValue } = __webpack_require__(1555) -const { commanderArretServiceSouscritMesures } = __webpack_require__(1556) +const { parseUserPdl, parseTags, parseValue } = __webpack_require__(1555) +const { rechercherPoint } = __webpack_require__(1556) const xml2js = __webpack_require__(1513) /** * @param {string} url * @param {string} apiAuthKey * @param {string} appLogin - * @param {number} pointId - * @param {number} serviceId - * @return {Promise<string>} User contractId + * @param {string} name + * @param {string} address + * @param {string} postalCode + * @param {string} inseeCode + * @return {Promise<string | null>} User Pdl */ -async function terminateContract( +async function findUserPdl( url, apiAuthKey, appLogin, - contractId, - pointId, - serviceId + name, + address, + postalCode, + inseeCode ) { - log('info', 'terminateContract') + log('info', 'Fetching user data') const sgeHeaders = { 'Content-Type': 'text/xml;charset=UTF-8', apikey: apiAuthKey, } const { response } = await soapRequest({ - url: `${url}/enedis_SGE_CommandeArretServiceSouscritMesures/1.0`, + url: url, headers: sgeHeaders, - xml: commanderArretServiceSouscritMesures( - appLogin, - contractId, - pointId, - serviceId - ), + xml: rechercherPoint(appLogin, name, postalCode, inseeCode, address), }).catch(err => { - log('error', 'commanderArretServiceSouscritMesures') + log('error', 'rechercherPointResponse') log('error', err) - throw errors.VENDOR_DOWN + throw errors.LOGIN_FAILED }) const parsedReply = await xml2js.parseStringPromise(response.body, { @@ -228371,25 +228368,18 @@ async function terminateContract( }) try { - // We don't need any action on reply for now - if (parsedReply.Envelope.Body.Fault) { - log( - 'error', - `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}` - ) - } - return parsedReply + return parseUserPdl(parsedReply) } catch (error) { - log('error', 'Error while parsing user contract termination: ' + error) + log('error', 'Error while parsing user PDL: ' + error) log( 'error', `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}` ) - throw errors.VENDOR_DOWN + throw errors.LOGIN_FAILED } } -module.exports = { terminateContract } +module.exports = { findUserPdl } /***/ }), @@ -228398,65 +228388,110 @@ module.exports = { terminateContract } // @ts-check const { log, errors } = __webpack_require__(1) -const soapRequest = __webpack_require__(1331) -const { - parseTags, - parseValue, - parseContractStartDate, -} = __webpack_require__(1555) -const xml2js = __webpack_require__(1513) -const { consulterDonneesTechniquesContractuelles } = __webpack_require__(1556) +const { findUserPdl } = __webpack_require__(1601) +const { getInseeCode } = __webpack_require__(1603) /** - * Get user contract start date - * @param {string} url + * Verify user identity + * @param {object} fields + * @param {string} baseUrl * @param {string} apiAuthKey - * @param {string} userLogin - * @param {number} pointId - * @returns {Promise<string>} + * @param {string} loginUtilisateur + * @param {boolean} isAlternateStart + * @returns {Promise<User>} */ -async function getContractStartDate(url, apiAuthKey, userLogin, pointId) { - log('info', 'Fetching data start date') - const sgeHeaders = { - 'Content-Type': 'text/xml;charset=UTF-8', - apikey: apiAuthKey, +async function verifyUserIdentity( + fields, + baseUrl, + apiAuthKey, + loginUtilisateur, + isAlternateStart = false +) { + const inseeCode = await getInseeCode(fields.postalCode, fields.city) + + const pdl = await findUserPdl( + `${baseUrl}/enedis_SDE_recherche-point/1.0`, + apiAuthKey, + loginUtilisateur, + fields.lastname, + fields.address, + fields.postalCode, + inseeCode + ) + + if (fields.pointId != pdl) { + log('error', 'PointId does not match') + if (isAlternateStart) { + throw errors.TERMS_VERSION_MISMATCH + } else { + throw errors.LOGIN_FAILED + } } - const { response } = await soapRequest({ - url: `${url}/enedis_SGE_ConsultationDonneesTechniquesContractuelles/1.0`, - headers: sgeHeaders, - xml: consulterDonneesTechniquesContractuelles(pointId, userLogin), - }).catch(err => { - log('error', 'Error while fetching contract start date : ' + err) - throw errors.VENDOR_DOWN - }) + return { + lastname: fields.lastname, + firstname: fields.firstname, + pointId: fields.pointId, + inseeCode, + postalCode: fields.postalCode, + address: fields.address, + } +} - const result = await xml2js.parseStringPromise(response.body, { - tagNameProcessors: [parseTags], - valueProcessors: [parseValue], - explicitArray: false, - }) +module.exports = { verifyUserIdentity } + + +/***/ }), +/* 1603 */ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// @ts-check +const { default: axios } = __webpack_require__(1558) +const { log, errors } = __webpack_require__(1) + +const API_URL = 'https://apicarto.ign.fr/api/codes-postaux/communes' + +/** + * Return inseeCode given a postalCode + * @param {string} postalCode + * @param {string} [city] + * @return {Promise<string>} inseeCode + */ +async function getInseeCode(postalCode, city) { try { - return parseContractStartDate(result) + log('info', `Query getInseeCode for postalCode ${postalCode} / ${city}`) + const response = await axios.get(`${API_URL}/${postalCode}`) + + if (response.data.length === 1) { + return response.data[0].codeCommune + } else { + if (!city) throw errors.USER_ACTION_NEEDED + + const filteredResponse = response.data.filter( + town => town.nomCommune.toLowerCase() === city.toLowerCase() + ) + return filteredResponse[0].codeCommune + } } catch (error) { - log('error', 'Error while processing contract start date: ' + error) log( 'error', - `Enedis issue ${result.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${result.Envelope.Body.Fault.faultstring}` + `Query getInseeCode failed for postalCode ${postalCode} / ${city}` ) - throw errors.NOT_EXISTING_DIRECTORY + throw errors.USER_ACTION_NEEDED } } -module.exports = { getContractStartDate } +module.exports = { + getInseeCode, +} /***/ }), -/* 1603 */ +/* 1604 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const { log, updateOrCreate } = __webpack_require__(1) -const { iSLocal } = __webpack_require__(1604) +const { isLocal } = __webpack_require__(1605) const cozyClient = __webpack_require__(485) async function saveAccountData(accountId, accountData) { @@ -228473,10 +228508,9 @@ async function saveAccountData(accountId, accountData) { async function getAccount(accountId) { log('info', `getAccount: ${accountId}`) - //TODO: refactor with usageof cozy-libs. Not working during implementation const accounts = await cozyClient.data.findAll('io.cozy.accounts') return accounts.filter(account => - iSLocal() ? account._id === accountId : account.account_type === accountId + isLocal() ? account._id === accountId : account.account_type === accountId )[0] } @@ -228484,10 +228518,10 @@ module.exports = { getAccount, saveAccountData } /***/ }), -/* 1604 */ +/* 1605 */ /***/ ((module) => { -function iSLocal() { +function isLocal() { return ( process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'local' || @@ -228495,7 +228529,7 @@ function iSLocal() { ) } -module.exports = { iSLocal } +module.exports = { isLocal } /***/ }) diff --git a/onDeleteAccount.js b/onDeleteAccount.js index d28664f8417046fca1c6f6d940646ac01d92066e..f8992eba4334e6db2cbf2ee3f446cab12f106daf 100644 --- a/onDeleteAccount.js +++ b/onDeleteAccount.js @@ -222918,6 +222918,18 @@ async function formateDataForDoctype(data) { }) } +/** + * Check if response contains contracts + * @param {string} parsedReply + * @return {boolean} + */ +function checkContractExists(parsedReply) { + const json = JSON.stringify(parsedReply) + return JSON.parse(json)['Envelope']['Body'][ + 'rechercherServicesSouscritsMesuresResponse' + ]['servicesSouscritsMesures'] +} + /** * Format tag in order to be manipulated easly * @param {string} name @@ -222953,6 +222965,7 @@ module.exports = { parseContracts, parseContractStartDate, parseServiceId, + checkContractExists, } @@ -227310,10 +227323,7 @@ module.exports = function isAxiosError(payload) { /* 1595 */, /* 1596 */, /* 1597 */, -/* 1598 */, -/* 1599 */, -/* 1600 */, -/* 1601 */ +/* 1598 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check @@ -227377,10 +227387,7 @@ async function terminateContract( return parsedReply } catch (error) { log('error', 'Error while parsing user contract termination: ' + error) - log( - 'error', - `Enedis issue ${parsedReply.Envelope.Body.Fault.detail.erreur.resultat.$.code}: ${parsedReply.Envelope.Body.Fault.faultstring}` - ) + log('error', `Enedis issue ${JSON.stringify(parsedReply.Envelope.Body)}`) throw errors.VENDOR_DOWN } } @@ -227389,12 +227396,16 @@ module.exports = { terminateContract } /***/ }), +/* 1599 */, +/* 1600 */, +/* 1601 */, /* 1602 */, -/* 1603 */ +/* 1603 */, +/* 1604 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const { log, updateOrCreate } = __webpack_require__(1) -const { iSLocal } = __webpack_require__(1604) +const { isLocal } = __webpack_require__(1605) const cozyClient = __webpack_require__(485) async function saveAccountData(accountId, accountData) { @@ -227411,10 +227422,9 @@ async function saveAccountData(accountId, accountData) { async function getAccount(accountId) { log('info', `getAccount: ${accountId}`) - //TODO: refactor with usageof cozy-libs. Not working during implementation const accounts = await cozyClient.data.findAll('io.cozy.accounts') return accounts.filter(account => - iSLocal() ? account._id === accountId : account.account_type === accountId + isLocal() ? account._id === accountId : account.account_type === accountId )[0] } @@ -227422,10 +227432,10 @@ module.exports = { getAccount, saveAccountData } /***/ }), -/* 1604 */ +/* 1605 */ /***/ ((module) => { -function iSLocal() { +function isLocal() { return ( process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'local' || @@ -227433,26 +227443,25 @@ function iSLocal() { ) } -module.exports = { iSLocal } +module.exports = { isLocal } /***/ }), -/* 1605 */ +/* 1606 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { // @ts-check const { log, errors } = __webpack_require__(1) -const { getAccountRev, getAccountSecret } = __webpack_require__(1606) +const { getAccountRev, getAccountSecret } = __webpack_require__(1607) const { getBoConsent, deleteBoConsent } = __webpack_require__(1557) -const { terminateContract } = __webpack_require__(1601) -const { getAccount } = __webpack_require__(1603) -// const getAccountSecret = require('./helpers/getAccountSecret') +const { terminateContract } = __webpack_require__(1598) +const { getAccount } = __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 } = __webpack_require__(1604) -const ACCOUNT_ID = iSLocal() ? 'default_account_id' : 'enedis-sge-grandlyon' +const { isLocal } = __webpack_require__(1605) +const ACCOUNT_ID = isLocal() ? 'default_account_id' : 'enedis-sge-grandlyon' async function onDeleteAccount() { log('info', 'Deleting account ...') @@ -227469,7 +227478,7 @@ async function onDeleteAccount() { accountData.data.consentId ) - if (userConsent.ID && userConsent.pointID && userConsent.pointID) { + if (userConsent.ID && userConsent.pointID) { log('log', `Consent ${userConsent.ID} found for user`) if (userConsent.serviceID) { await deleteBoConsent( @@ -227518,11 +227527,11 @@ module.exports = { onDeleteAccount } /***/ }), -/* 1606 */ +/* 1607 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const { log } = __webpack_require__(1) -const { iSLocal } = __webpack_require__(1604) +const { isLocal } = __webpack_require__(1605) function getAccountId() { log('info', `getAccountId`) @@ -227536,7 +227545,7 @@ function getAccountId() { function getAccountRev() { log('info', `getAccountRev`) try { - return iSLocal() + return isLocal() ? 'fakeAccountRev' : JSON.parse(process.env.COZY_FIELDS).account_rev } catch (err) { @@ -227550,15 +227559,14 @@ function getAccountRev() { */ function getAccountSecret() { try { - return iSLocal() + return isLocal() ? { - baseUrl: 'https://apis.grandlyon.fr', - sgeLogin: 'donnees.energie@grandlyon.com', - contractId: '4921350', - boBaseUrl: 'https://ecolyo-agent-rec.grandlyon.com/api/sge', - boToken: '*pdG7qg^xar5BTcnetCg', - apiAuthKey: - 'eyJ4NXQiOiJaR1l4TVRBeVlqaGxNbVU0T1dReE56SXhZbU01TUdZMk5XVmxNak15TWpVeE9XUXdOakppWlE9PSIsImtpZCI6ImdhdGV3YXlfY2VydGlmaWNhdGVfYWxpYXMiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJMREFQXC9JUEo5MTUzQGNhcmJvbi5zdXBlciIsImFwcGxpY2F0aW9uIjp7Im93bmVyIjoiTERBUFwvSVBKOTE1MyIsInRpZXJRdW90YVR5cGUiOm51bGwsInRpZXIiOiJVbmxpbWl0ZWQiLCJuYW1lIjoiU0dFIiwiaWQiOjMwLCJ1dWlkIjoiYjU0MWYxZDEtYTMzYi00ODYyLThiOGQtNTk4MDljYjQzNWRjIn0sImlzcyI6Imh0dHBzOlwvXC9hcGlzLmdyYW5kbHlvbi5mcjo0NDNcL29hdXRoMlwvdG9rZW4iLCJ0aWVySW5mbyI6eyJVbmxpbWl0ZWQiOnsidGllclF1b3RhVHlwZSI6InJlcXVlc3RDb3VudCIsImdyYXBoUUxNYXhDb21wbGV4aXR5IjowLCJncmFwaFFMTWF4RGVwdGgiOjAsInN0b3BPblF1b3RhUmVhY2giOnRydWUsInNwaWtlQXJyZXN0TGltaXQiOjAsInNwaWtlQXJyZXN0VW5pdCI6bnVsbH19LCJrZXl0eXBlIjoiUFJPRFVDVElPTiIsInBlcm1pdHRlZFJlZmVyZXIiOiIiLCJzdWJzY3JpYmVkQVBJcyI6W3sic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJlbmVkaXNfU0RFX3JlY2hlcmNoZS1wb2ludCIsImNvbnRleHQiOiJcL2VuZWRpc19TREVfcmVjaGVyY2hlLXBvaW50XC8xLjAiLCJwdWJsaXNoZXIiOiJhZG1pbiIsInZlcnNpb24iOiIxLjAiLCJzdWJzY3JpcHRpb25UaWVyIjoiVW5saW1pdGVkIn0seyJzdWJzY3JpYmVyVGVuYW50RG9tYWluIjoiY2FyYm9uLnN1cGVyIiwibmFtZSI6ImVuZWRpc19TR0VfQ29tbWFuZGVUcmFuc21pc3Npb25IaXN0b3JpcXVlTWVzdXJlcyIsImNvbnRleHQiOiJcL2VuZWRpc19TR0VfQ29tbWFuZGVUcmFuc21pc3Npb25IaXN0b3JpcXVlTWVzdXJlc1wvMS4wIiwicHVibGlzaGVyIjoiYWRtaW4iLCJ2ZXJzaW9uIjoiMS4wIiwic3Vic2NyaXB0aW9uVGllciI6IlVubGltaXRlZCJ9LHsic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJlbmVkaXNfU0dFX1JlY2hlcmNoZVNlcnZpY2VzTWVzdXJlcyIsImNvbnRleHQiOiJcL2VuZWRpc19TR0VfUmVjaGVyY2hlU2VydmljZXNNZXN1cmVzXC8xLjAiLCJwdWJsaXNoZXIiOiJhZG1pbiIsInZlcnNpb24iOiIxLjAiLCJzdWJzY3JpcHRpb25UaWVyIjoiVW5saW1pdGVkIn0seyJzdWJzY3JpYmVyVGVuYW50RG9tYWluIjoiY2FyYm9uLnN1cGVyIiwibmFtZSI6ImVuZWRpc19TR0VfQ29uc3VsdGF0aW9uTWVzdXJlcyIsImNvbnRleHQiOiJcL2VuZWRpc19TR0VfQ29uc3VsdGF0aW9uTWVzdXJlc1wvMS4wIiwicHVibGlzaGVyIjoiYWRtaW4iLCJ2ZXJzaW9uIjoiMS4wIiwic3Vic2NyaXB0aW9uVGllciI6IlVubGltaXRlZCJ9LHsic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJlbmVkaXNfU0dFX0NvbnN1bHRhdGlvbk1lc3VyZXNEZXRhaWxsZWVzIiwiY29udGV4dCI6IlwvZW5lZGlzX1NHRV9Db25zdWx0YXRpb25NZXN1cmVzRGV0YWlsbGVlc1wvMS4wIiwicHVibGlzaGVyIjoiYWRtaW4iLCJ2ZXJzaW9uIjoiMS4wIiwic3Vic2NyaXB0aW9uVGllciI6IlVubGltaXRlZCJ9LHsic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJlbmVkaXNfU0dFX0NvbnN1bHRhdGlvbkRvbm5lZXNUZWNobmlxdWVzQ29udHJhY3R1ZSIsImNvbnRleHQiOiJcL2VuZWRpc19TR0VfQ29uc3VsdGF0aW9uRG9ubmVlc1RlY2huaXF1ZXNDb250cmFjdHVlbGxlc1wvMS4wIiwicHVibGlzaGVyIjoiYWRtaW4iLCJ2ZXJzaW9uIjoiMS4wIiwic3Vic2NyaXB0aW9uVGllciI6IlVubGltaXRlZCJ9LHsic3Vic2NyaWJlclRlbmFudERvbWFpbiI6ImNhcmJvbi5zdXBlciIsIm5hbWUiOiJlbmVkaXNfU0dFX0NvbW1hbmRlQ29sbGVjdGVQdWJsaWNhdGlvbk1lc3VyZXMiLCJjb250ZXh0IjoiXC9lbmVkaXNfU0dFX0NvbW1hbmRlQ29sbGVjdGVQdWJsaWNhdGlvbk1lc3VyZXNcLzEuMCIsInB1Ymxpc2hlciI6ImFkbWluIiwidmVyc2lvbiI6IjEuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJVbmxpbWl0ZWQifSx7InN1YnNjcmliZXJUZW5hbnREb21haW4iOiJjYXJib24uc3VwZXIiLCJuYW1lIjoiZW5lZGlzX1NHRV9Db21tYW5kZUFycmV0U2VydmljZVNvdXNjcml0TWVzdXJlcyIsImNvbnRleHQiOiJcL2VuZWRpc19TR0VfQ29tbWFuZGVBcnJldFNlcnZpY2VTb3VzY3JpdE1lc3VyZXNcLzEuMCIsInB1Ymxpc2hlciI6ImFkbWluIiwidmVyc2lvbiI6IjEuMCIsInN1YnNjcmlwdGlvblRpZXIiOiJVbmxpbWl0ZWQifV0sInRva2VuX3R5cGUiOiJhcGlLZXkiLCJwZXJtaXR0ZWRJUCI6IiIsImlhdCI6MTY1MDg5MDYwNiwianRpIjoiYWQzNjNlNzAtMTVhOS00NzQ1LWExNDEtOGIxOTU5MjQwZTM3In0=.UK5Jx1WRA0A6KVUFK5rs5RH7e9qAWn4v_AmmX_CHD3MNzZWikaUFD1UmS_VvMfWvqLMvRBqbkVH0X5na46e8cZA6WYaQuI5xu9oEOptv8HRY3VX-4VBpjvmTcSSRmCN6AqyalggWbzVlDsKCpVyFWavGi-DFrd7Fe9U41kNs33Li-C9LU794LEaqBPfC8avNwHv8UTzkpExR1jwCXjkLXQ-M8txHgdGGYqZ2VN0_8DeuJ7BOYQGmmENxMt0orm9k9ubtLIijnfNAOLRUZcboQRAURE_IdtuBRG0EWBkkDocefWysmckKBt6lUMtYjxpzWCDyw9UYyQAaPC1Ogy6oAg==', + baseUrl: 'https://test.fr', + sgeLogin: 'test@test.com', + contractId: '134567', + boBaseUrl: 'https://botest.grandlyon.com/', + boToken: 'tok31n', + apiAuthKey: 'authkeYeasqqd56dsdq', } : JSON.parse(process.env.COZY_PARAMETERS).secret } catch (err) { @@ -227658,7 +227666,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 = 1605); +/******/ var __webpack_exports__ = __webpack_require__(__webpack_require__.s = 1606); /******/ /******/ })() ; \ No newline at end of file diff --git a/package.json b/package.json index 3d76bd2734418c82bf344741e0cf2f35b37238cf..54f2e5454affb2a7a7bd9f34645041b1d3eb6cb9 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,9 @@ "pre-commit": "yarn lint" } }, + "jest": { + "setupFiles": ["./setupTests.js"] + }, "scripts": { "start": "node ./src/index.js", "dev": "cozy-konnector-dev",