diff --git a/index.js b/index.js index 491560526f87b3036fca05ae7d5a96307eb560d1..7577d839f764b48a5abc568bc6a3c376c3c6072a 100644 --- a/index.js +++ b/index.js @@ -188,31 +188,29 @@ async function start(fields, cozyParameters) { true ) + if (!userConsent) { + log('error', 'No user consent found') + throw errors.VENDOR_DOWN + } + + const consentEndDate = Date.parse(userConsent.endDate) + const today = Date.now() if ( user.lastname.toLocaleUpperCase() !== userConsent.lastname.toLocaleUpperCase() || - !user + !user || + consentEndDate < today ) { - log('error', `Invalid or not found consent for user`) - if (userConsent.serviceId) { - await terminateContract( - baseUrl, - apiAuthKey, - sgeLogin, - contractId, - pointId, - userConsent.serviceId - ) - await deleteBoConsent( - boBaseUrl, - boToken, - userConsent.ID ? userConsent.ID : 0 - ) - } else { - log('error', `No service id retrieved from BO`) - throw errors.VENDOR_DOWN - } - throw errors.TERMS_VERSION_MISMATCH + await deleteConsent( + userConsent, + baseUrl, + apiAuthKey, + sgeLogin, + contractId, + pointId, + boBaseUrl, + boToken + ) } } log('info', 'Successfully logged in') @@ -220,6 +218,49 @@ async function start(fields, cozyParameters) { await gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) } +/** + * Delete User Consent + * @param {Consent} userConsent + * @param {string} baseUrl + * @param {string} apiAuthKey + * @param {string} sgeLogin + * @param {string} contractId + * @param {number} pointId + * @param {string} boBaseUrl + * @param {string} boToken + */ +async function deleteConsent( + userConsent, + baseUrl, + apiAuthKey, + sgeLogin, + contractId, + pointId, + boBaseUrl, + boToken +) { + log('error', `Invalid or not found consent for user`) + if (userConsent.serviceID) { + await terminateContract( + baseUrl, + apiAuthKey, + sgeLogin, + contractId, + pointId, + userConsent.serviceID + ) + await deleteBoConsent( + boBaseUrl, + boToken, + userConsent.ID ? userConsent.ID : 0 + ) + } else { + log('error', `No service id retrieved from BO`) + throw errors.VENDOR_DOWN + } + throw errors.TERMS_VERSION_MISMATCH +} + /** * Main method for gathering data * @param {string} baseUrl @@ -223958,7 +223999,6 @@ async function updateBoConsent(url, token, consent, serviceId) { }, headers ) - log('info', data) return data } catch (e) { log('error', `BO replied with ${e}`) @@ -227968,7 +228008,6 @@ async function verifyUserIdentity( if (fields.pointId != pdl) { log('error', 'PointId does not match') - log('error', `isAlternateStart ${isAlternateStart}`) if (isAlternateStart) { throw errors.TERMS_VERSION_MISMATCH } else { @@ -228035,6 +228074,8 @@ async function findUserPdl( throw errors.LOGIN_FAILED }) + console.log(rechercherPoint(appLogin, name, postalCode, inseeCode, address)) + const parsedReply = await xml2js.parseStringPromise(response.body, { tagNameProcessors: [parseTags], valueProcessors: [parseValue], diff --git a/onDeleteAccount.js b/onDeleteAccount.js index 64b78e5ccb886394b44c9b9e2e84ea7db2b3b408..d28664f8417046fca1c6f6d940646ac01d92066e 100644 --- a/onDeleteAccount.js +++ b/onDeleteAccount.js @@ -223336,7 +223336,6 @@ async function updateBoConsent(url, token, consent, serviceId) { }, headers ) - log('info', data) return data } catch (e) { log('error', `BO replied with ${e}`) @@ -227441,6 +227440,7 @@ module.exports = { iSLocal } /* 1605 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { +// @ts-check const { log, errors } = __webpack_require__(1) const { getAccountRev, getAccountSecret } = __webpack_require__(1606) const { getBoConsent, deleteBoConsent } = __webpack_require__(1557) @@ -227469,21 +227469,21 @@ async function onDeleteAccount() { accountData.data.consentId ) - if (userConsent.pointId && userConsent.pointId) { - log('error', `Consent found for user`) - if (userConsent.serviceId) { + if (userConsent.ID && userConsent.pointID && userConsent.pointID) { + log('log', `Consent ${userConsent.ID} found for user`) + if (userConsent.serviceID) { await deleteBoConsent( secrets.boBaseUrl, secrets.boToken, - userConsent.id + userConsent.ID ) await terminateContract( secrets.baseUrl, secrets.apiAuthKey, secrets.sgeLogin, secrets.contractId, - userConsent.pointId, - userConsent.serviceId + userConsent.pointID, + userConsent.serviceID ) } else { log('error', `No service id retrieved from BO`) @@ -227552,12 +227552,13 @@ function getAccountSecret() { try { return iSLocal() ? { - baseUrl: 'https://test.fr', - sgeLogin: 'test@test.com', - contractId: '134567', - boBaseUrl: 'https://botest.grandlyon.com/', - boToken: 'tok31n', - apiAuthKey: 'authkeYeasqqd56dsdq', + 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==', } : JSON.parse(process.env.COZY_PARAMETERS).secret } catch (err) {