diff --git a/__tests__/core/verifyUserIdentity.spec.js b/__tests__/core/verifyUserIdentity.spec.js index 37a585c9e32489f4bde41a31a2ade3a8807472ae..4c3dd1382efce5fbcae6c57e3ba7249696ef9410 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 bcaa2ffef54e0e3c43db9470e735c0323d6c4570..e69c30834098d4a0f53d36d9907e1ff151cdd4a8 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 22a13c3ea6a06471745945b4e4a2e3bd2a8773fe..086303ee2df7d1fafe226b2f763cdf1f31c591c8 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 b91d909bf5ac08c5f93ae3f61bc370d95be204ca..a437971ec5c1f5a284203b17f98a958d2448e6cb 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 138c822a8de790c029b1879ae59bbdca053d151d..5bbb86be42e2b91da3cb25a56f621484025b0faa 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')