diff --git a/.vscode/settings.json b/.vscode/settings.json index 919e8c1758c58191d78ed41247e8434c61534e20..62efe4380d8552ca304093cea175baef04cfcd74 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -43,6 +43,7 @@ "grandlyon", "HISTO", "insee", + "konnector", "konnectors", "lastname", "llle", diff --git a/package.json b/package.json index 7d0bd065408e4281abf2aded39874ca135012873..a1e17f4e6d573fb0de5ec5eec221f809634c83a2 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "pretest": "npm run clean", "release": "standard-version --no-verify", "standalone": "cozy-konnector-standalone", + "standalone-no-data": "NO_DATA=true cozy-konnector-standalone src/index.js", "start": "node ./src/index.js", "test:cov": "jest --coverage", "test": "jest", diff --git a/src/index.js b/src/index.js index 21306faf8b87daf57dddcee85cd988f9c8917350..8fd6b395d17fdd2a015f0ddddb06ee4baef632e5 100644 --- a/src/index.js +++ b/src/index.js @@ -56,6 +56,7 @@ const startLoadDate = moment().subtract(7, 'day') const endDate = moment() const endDateString = endDate.format('YYYY-MM-DD') const ACCOUNT_ID = isLocal() ? 'default_account_id' : 'enedissgegrandlyon' +const NO_DATA = process.env.NO_DATA === 'true' module.exports = new BaseKonnector(start) @@ -92,6 +93,13 @@ async function start(fields, cozyParameters) { try { log('info', 'Konnector configuration ...') log('info', `isManual execution: ${manualExecution}`) + + if (NO_DATA) { + log( + 'debug', + 'NO_DATA is enabled, konnector will stop after verifyUserIdentity()' + ) + } const transaction = Sentry.startTransaction({ op: 'konnector', name: 'SGE Konnector', @@ -149,6 +157,8 @@ async function start(fields, cozyParameters) { sgeLogin ) + exitIfDebug(user) + let consent = await createBoConsent( boBaseUrl, boToken, @@ -230,6 +240,8 @@ async function start(fields, cozyParameters) { accountData.data.inseeCode ) + exitIfDebug(user) + if (!userConsent) { const errorMessage = 'No user consent found' log('error', errorMessage) @@ -623,3 +635,19 @@ function isFirstStart(account) { log('info', 'Konnector first start') return true } + +/** + * Check if konnector is launched in local with NO_DATA option + * If so, logs result from verifyUserIdentity() and stops the konnector before getting any data + * @param {User} user - The user object to log + */ +function exitIfDebug(user) { + if (NO_DATA) { + log( + 'debug', + `Stopping konnector before getting data, user found from verifyUserIdentity():` + ) + log('debug', user) + process.exit() + } +}