Skip to content
Snippets Groups Projects
Commit 9549b897 authored by Bastien DUMONT's avatar Bastien DUMONT :angel:
Browse files

Merge branch '23-handle-13-digits-pdl' into 'main'

fix: handle pdl starting with 0

See merge request !42
parents c8f2367c 49bc4f97
No related branches found
No related tags found
1 merge request!42fix: handle pdl starting with 0
Pipeline #62709 passed
......@@ -11,7 +11,9 @@ const {
parseValue,
removeMultipleSpaces,
removeAddressNumber,
parsePointId,
} = require('../../src/helpers/parsing')
describe('parsing', () => {
it('should parse userPdl', () => {
const result = {
......@@ -222,4 +224,19 @@ describe('parsing', () => {
expect(reply).toBe('rue du lac')
})
})
describe('parsePointId', () => {
it('should test a regular point id', () => {
const point = parsePointId('12345678901234')
expect(point).toBe('12345678901234')
expect(point.length).toBe(14)
})
it('should test a point id starting with 0', () => {
const input = '7123456789012'
expect(input.length).toBe(13)
const point = parsePointId(input)
expect(point).toBe('07123456789012')
expect(point.length).toBe(14)
})
})
})
......@@ -11,7 +11,7 @@ const Sentry = require('@sentry/node')
* @param {string} apiAuthKey
* @param {string} appLogin
* @param {string} lastname
* @param {number} pointId
* @param {string} pointId
* @param {string} startDate
* @param {string} endDate
* @return {Promise<number>} User contractId
......
......@@ -15,7 +15,7 @@ const Sentry = require('@sentry/node')
* @param {string} url
* @param {string} apiAuthKey
* @param {string} userLogin
* @param {number} pointId
* @param {string} pointId
* @returns {Promise<string>}
*/
async function getContractStartDate(url, apiAuthKey, userLogin, pointId) {
......
......@@ -10,7 +10,7 @@ const Sentry = require('@sentry/node')
* @param {string} url
* @param {string} apiAuthKey
* @param {string} appLogin
* @param {number} pointId
* @param {string} pointId
* @param {number} serviceId
* @return {Promise<string>} User contractId
*/
......
......@@ -16,7 +16,7 @@ const Sentry = require('@sentry/node')
* @param {string} url
* @param {string} apiAuthKey
* @param {string} appLogin
* @param {number} pointId
* @param {string} pointId
* @return {Promise<number | null>} User contractId
*/
async function verifyContract(url, apiAuthKey, appLogin, contractId, pointId) {
......
......@@ -15,7 +15,7 @@ const Sentry = require('@sentry/node')
* @param {string} url
* @param {string} apiAuthKey
* @param {string} userLogin
* @param {number} pointId
* @param {string} pointId
* @returns {Promise<Address>}
*/
async function findUserAddress(url, apiAuthKey, userLogin, pointId) {
......
......@@ -31,7 +31,7 @@
/**
* Consent definition
* @typedef {object} Consent
* @property {number} pointID
* @property {string} pointID
* @property {string} lastname
* @property {string} firstname
* @property {string} address
......@@ -46,7 +46,7 @@
/**
* User definition
* @typedef {object} User
* @property {number} pointId
* @property {string} pointId
* @property {string} lastname
* @property {string} firstname
* @property {string} postalCode
......
......@@ -171,11 +171,29 @@ function removeAddressNumber(str) {
return str.replace(/\d+ |b |B |T |t |\d+/g, '')
}
/**
* Parse PDL and to validate correct length of 14 digits
* @param {number} pointId - some pdl start with 0
* @returns {string} pointId with 14 digits
* @example "07123456789012"
*/
function parsePointId(pointId) {
const strPointId = pointId.toString()
if (strPointId.length === 14) {
return strPointId
} else if (strPointId.length === 13) {
return `0${strPointId}`
} else {
throw new Error(`PointId ${pointId} is malformed`)
}
}
module.exports = {
checkContractExists,
formateDataForDoctype,
parseContracts,
parseContractStartDate,
parsePointId,
parseServiceId,
parseSgeXmlData,
parseTags,
......
......@@ -17,6 +17,7 @@ const {
parseTags,
parseValue,
parseValueHalfHour,
parsePointId,
} = require('./helpers/parsing')
const {
consultationMesuresDetailleesMaxPower,
......@@ -104,7 +105,7 @@ async function start(fields, cozyParameters) {
name: 'SGE Konnector',
})
const pointId = parseInt(fields.pointId)
const pointId = parsePointId(parseInt(fields.pointId))
let baseUrl = fields.wso2BaseUrl
let apiAuthKey = fields.apiToken
let contractId = fields.contractId
......@@ -288,7 +289,7 @@ async function start(fields, cozyParameters) {
* @param {string} apiAuthKey
* @param {string} sgeLogin
* @param {string} contractId
* @param {number} pointId
* @param {string} pointId
* @param {string} boBaseUrl
* @param {string} boToken
* @param {boolean} isConsentExpired
......@@ -334,7 +335,7 @@ async function deleteConsent(
* @param {string} baseUrl
* @param {string} apiAuthKey
* @param {string} sgeLogin
* @param {number} pointId
* @param {string} pointId
*/
async function gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) {
log('info', 'Querying data...')
......@@ -374,7 +375,7 @@ async function gatherData(baseUrl, apiAuthKey, sgeLogin, pointId) {
* @param {string} url
* @param {string} apiAuthKey
* @param {string} userLogin
* @param {number} pointId
* @param {string} pointId
*/
async function getData(url, apiAuthKey, userLogin, pointId) {
log('info', 'Fetching data')
......@@ -419,7 +420,7 @@ async function getData(url, apiAuthKey, userLogin, pointId) {
* @param {string} url
* @param {string} apiAuthKey
* @param {string} userLogin
* @param {number} pointId
* @param {string} pointId
*/
async function getMaxPowerData(url, apiAuthKey, userLogin, pointId) {
log('info', 'Fetching Max Power data')
......@@ -483,7 +484,7 @@ function limitStartDate() {
* @param {string} url
* @param {string} apiAuthKey
* @param {string} userLogin
* @param {number} pointId
* @param {string} pointId
*/
async function getDataHalfHour(url, apiAuthKey, userLogin, pointId) {
log('info', 'Fetching data')
......
......@@ -4,7 +4,7 @@ const { default: axios } = require('axios')
const Sentry = require('@sentry/node')
/**
* @param {number} pointID
* @param {string} pointID
* @param {string} lastname
* @param {string} firstname
* @param {string} address
......
......@@ -3,7 +3,7 @@ const { log } = require('cozy-konnector-libs')
/**
* Get daily data up to 36 months & P max
* @param {number} pointId
* @param {string} pointId
* @param {string} appLogin
* @param {string} startDate
* @param {string} endDate
......@@ -50,7 +50,7 @@ function consultationMesuresDetaillees(
/**
* Get user max power
* @param {number} pointId
* @param {string} pointId
* @param {string} appLogin
* @param {string} startDate
* @param {string} endDate
......@@ -98,7 +98,7 @@ function consultationMesuresDetailleesMaxPower(
/**
* Get user technical data (contract start date)
* @param {number} pointId
* @param {string} pointId
* @param {string} appLogin
* @returns {string}
*/
......@@ -194,7 +194,7 @@ function rechercherPoint(
* Search if user as a service
* @param {string} appLogin
* @param {string} contractId
* @param {number} pointId
* @param {string} pointId
* @returns {*}
*/
function rechercherServicesSouscritsMesures(appLogin, contractId, pointId) {
......@@ -220,7 +220,7 @@ function rechercherServicesSouscritsMesures(appLogin, contractId, pointId) {
* Activate half hour data collect for user
* @param {string} appLogin
* @param {string} contractId
* @param {number} pointId
* @param {string} pointId
* @param {string} lastname
* @param {string} startDate
* @param {string} endDate
......@@ -279,7 +279,7 @@ function commanderCollectePublicationMesures(
* Stop the user consent
* @param {string} appLogin
* @param {string} contractId
* @param {number} pointId
* @param {string} pointId
* @param {number} serviceSouscritId
* @returns {*}
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment