From 8e213d1bed29d042802fa975ebe8ea74af0b452f Mon Sep 17 00:00:00 2001 From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com> Date: Fri, 23 Sep 2022 15:59:00 +0200 Subject: [PATCH] fix(insee): store insee code in account and use it for alternate start --- __tests__/core/verifyUserIdentity.spec.js | 21 +++++++++++++++++++++ src/core/types/types.js | 15 +++++++++++++++ src/core/verifyUserIdentity.js | 9 +++++++-- src/index.js | 4 +++- src/requests/cozy.js | 5 +++++ 5 files changed, 51 insertions(+), 3 deletions(-) diff --git a/__tests__/core/verifyUserIdentity.spec.js b/__tests__/core/verifyUserIdentity.spec.js index 37a585c..4c3dd13 100644 --- a/__tests__/core/verifyUserIdentity.spec.js +++ b/__tests__/core/verifyUserIdentity.spec.js @@ -71,4 +71,25 @@ describe('verifyUserIdentity', () => { expect(true).toBe(false) } }) + it('should return void when pdl give and recieved are matching with stored inseecode ✅', async () => { + expect.assertions(1) + try { + await verifyUserIdentity( + { + name: 'John', + address: '1 street', + pointId: '12345', + postalCode: '69069', + }, + 'azertyuiop', + 'apiKey', + 'login@user.com', + true, + '69387' + ) + expect(true).toBeTruthy() + } catch (error) { + expect(true).toBe(false) + } + }) }) diff --git a/src/core/types/types.js b/src/core/types/types.js index bcaa2ff..e69c308 100644 --- a/src/core/types/types.js +++ b/src/core/types/types.js @@ -72,3 +72,18 @@ * @property {string} mesuresCorrigees * @property {string} periodiciteTransmission */ + +/** + * Account definition + * @typedef {object} Account + * @property {AccountData} data + * @property {object} auth + * @property {object} cozyMetadata + */ + +/** + * AccountData definition + * @typedef {object} AccountData + * @property {number} consentId + * @property {string} inseeCode + */ diff --git a/src/core/verifyUserIdentity.js b/src/core/verifyUserIdentity.js index 22a13c3..086303e 100644 --- a/src/core/verifyUserIdentity.js +++ b/src/core/verifyUserIdentity.js @@ -17,9 +17,14 @@ async function verifyUserIdentity( baseUrl, apiAuthKey, loginUtilisateur, - isAlternateStart = false + isAlternateStart = false, + inseeCode = '' ) { - const inseeCode = await getInseeCode(fields.postalCode, fields.city) + // If first start get InseeCode + log('debug', 'verifyUserIdentity') + if (!isAlternateStart) { + inseeCode = await getInseeCode(fields.postalCode, fields.city) + } const pdl = await findUserPdl( `${baseUrl}/enedis_SDE_recherche-point/1.0`, diff --git a/src/index.js b/src/index.js index b91d909..a437971 100644 --- a/src/index.js +++ b/src/index.js @@ -168,6 +168,7 @@ async function start(fields, cozyParameters) { await saveAccountData(this.accountId, { ...accountData.data, consentId: consent.ID, + inseeCode: user.inseeCode, }) } else { log('info', 'Alternate start...') @@ -182,7 +183,8 @@ async function start(fields, cozyParameters) { baseUrl, apiAuthKey, sgeLogin, - true + true, + accountData.data.inseeCode ) if (!userConsent) { diff --git a/src/requests/cozy.js b/src/requests/cozy.js index 138c822..5bbb86b 100644 --- a/src/requests/cozy.js +++ b/src/requests/cozy.js @@ -14,6 +14,11 @@ async function saveAccountData(accountId, accountData) { return account } +/** + * Return account + * @param {string} accountId + * @returns {Account} + */ async function getAccount(accountId) { log('info', `getAccount: ${accountId}`) const accounts = await cozyClient.data.findAll('io.cozy.accounts') -- GitLab