From 5c796436f2bf665853b17ab98f50d43573060755 Mon Sep 17 00:00:00 2001 From: Hugo SUBTIL <ext.sopra.husubtil@grandlyon.com> Date: Thu, 11 Aug 2022 14:42:47 +0200 Subject: [PATCH] fix: type issue on pointID --- manifest.konnector | 2 +- src/core/types/types.js | 2 +- src/index.js | 35 +++++++++++++++++++++++------------ src/requests/bo.js | 10 +++++++--- 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/manifest.konnector b/manifest.konnector index 17bc04d..9f38cba 100644 --- a/manifest.konnector +++ b/manifest.konnector @@ -27,7 +27,7 @@ "type": "string" }, "pointId": { - "type": "number" + "type": "string" } }, "data_types": [ diff --git a/src/core/types/types.js b/src/core/types/types.js index f857db4..6c5804f 100644 --- a/src/core/types/types.js +++ b/src/core/types/types.js @@ -22,7 +22,7 @@ * @property {string} apiToken * @property {string} sgeLogin * @property {string} contractId - * @property {number} pointId + * @property {string} pointId * @property {string} lastname * @property {string} boBaseUrl * @property {string} boToken diff --git a/src/index.js b/src/index.js index 876e025..09c9607 100644 --- a/src/index.js +++ b/src/index.js @@ -64,12 +64,14 @@ module.exports = new BaseKonnector(start) async function start(fields, cozyParameters) { log('info', 'Konnector configuration ...') - const pointId = fields.pointId + const pointId = parseInt(fields.pointId) 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') @@ -77,10 +79,19 @@ async function start(fields, cozyParameters) { apiAuthKey = cozyParameters.secret.apiToken contractId = cozyParameters.secret.contractId sgeLogin = cozyParameters.secret.sgeLogin + boBaseUrl = cozyParameters.secret.boBaseUrl + boToken = cozyParameters.secret.boToken } // Prevent missing configuration - if (!baseUrl || !apiAuthKey || !contractId || !sgeLogin) { + if ( + !baseUrl || + !apiAuthKey || + !contractId || + !sgeLogin || + !boToken || + !boBaseUrl + ) { log('error', `Missing configuration secrets`) throw errors.VENDOR_DOWN } @@ -99,8 +110,8 @@ async function start(fields, cozyParameters) { const user = await verifyUserIdentity(fields, baseUrl, apiAuthKey, sgeLogin) let consent = await createBoConsent( - fields.boBaseUrl, - fields.boToken, + boBaseUrl, + boToken, pointId, user.lastname, user.firstname, @@ -144,8 +155,8 @@ async function start(fields, cozyParameters) { ) } consent = await updateBoConsent( - fields.boBaseUrl, - fields.boToken, + boBaseUrl, + boToken, consent, serviceId.toString() ) @@ -160,8 +171,8 @@ async function start(fields, cozyParameters) { // AlternateStart const accountData = await getAccount(ACCOUNT_ID) const userConsent = await getBoConsent( - fields.boBaseUrl, - fields.boToken, + boBaseUrl, + boToken, accountData.data.consentId ) const user = await verifyUserIdentity(fields, baseUrl, apiAuthKey, sgeLogin) @@ -178,12 +189,12 @@ async function start(fields, cozyParameters) { apiAuthKey, sgeLogin, contractId, - fields.pointId, + pointId, userConsent.serviceId ) await deleteBoConsent( - fields.boBaseUrl, - fields.boToken, + boBaseUrl, + boToken, userConsent.ID ? userConsent.ID : 0 ) } else { @@ -195,7 +206,7 @@ async function start(fields, cozyParameters) { } log('info', 'Successfully logged in') - await gatherData(baseUrl, apiAuthKey, sgeLogin, fields.pointId) + await gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) } /** diff --git a/src/requests/bo.js b/src/requests/bo.js index 5cbc03d..d71bf37 100644 --- a/src/requests/bo.js +++ b/src/requests/bo.js @@ -27,6 +27,7 @@ async function createBoConsent( Authorization: `Bearer ${token}`, }, } + try { const { data } = await axios.post( `${url}/consent`, @@ -63,17 +64,21 @@ async function updateBoConsent(url, token, consent, serviceId) { } try { + let consentId = '' + if (consent.ID) { + consentId = consent.ID.toString() + } const { data } = await axios.put( - `${url}/consent/${consent.ID?.toString()}`, + `${url}/consent/${consentId}`, { ...consent, serviceId: parseInt(serviceId), }, headers ) + log('info', data) return data } catch (e) { - console.log(e) log('error', `BO replied with ${e}`) throw errors.MAINTENANCE } @@ -84,7 +89,6 @@ async function updateBoConsent(url, token, consent, serviceId) { * @returns {Promise<Consent>} */ async function getBoConsent(url, token, boId) { - //TODO: Implement log('info', `Query getBoConsent ${boId}`) const headers = { headers: { -- GitLab