diff --git a/src/core/verifyUserIdentity.js b/src/core/verifyUserIdentity.js index 4f2dc96ef2c00923248a57aef0edbf0c7ba8fe90..6260222957cc6a448886653bf626d531a6de9a26 100644 --- a/src/core/verifyUserIdentity.js +++ b/src/core/verifyUserIdentity.js @@ -8,6 +8,7 @@ const { removeAddressNumber, } = require('../helpers/parsing') const Sentry = require('@sentry/node') +const { sanitizeLastname } = require('../helpers/sanitizeName') /** * Verify user identity @@ -31,6 +32,7 @@ async function verifyUserIdentity( if (!isAlternateStart) { inseeCode = await getInseeCode(fields.postalCode, fields.city) } + const lastname = sanitizeLastname(fields.lastname) // Store if user is going through safety sge onboarding let userSafetyOnBoarding = false @@ -40,7 +42,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, fields.address, fields.postalCode, inseeCode @@ -68,7 +70,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, removeMultipleSpaces(userAddress.numeroEtNomVoie), userAddress.codePostal, userAddress.commune.$.code, @@ -82,7 +84,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, removeMultipleSpaces(removeAddressNumber(userAddress.numeroEtNomVoie)), userAddress.codePostal, userAddress.commune.$.code @@ -96,7 +98,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, removeMultipleSpaces(removeAddressNumber(userAddress.numeroEtNomVoie)), userAddress.codePostal, userAddress.commune.$.code, @@ -122,7 +124,7 @@ async function verifyUserIdentity( } return { - lastname: fields.lastname, + lastname: lastname, firstname: fields.firstname, pointId: fields.pointId, inseeCode, diff --git a/src/helpers/sanitizeName.js b/src/helpers/sanitizeName.js new file mode 100644 index 0000000000000000000000000000000000000000..8c9016f353b9797054bdf2a8896414d0469a54cd --- /dev/null +++ b/src/helpers/sanitizeName.js @@ -0,0 +1,28 @@ +const REPLACE_CHARS = { + â: 'a', + ê: 'e', + î: 'i', + ô: 'o', + û: 'u', + ä: 'a', + ë: 'e', + ï: 'i', + ö: 'o', + ü: 'u', + é: 'e', + è: 'e', + ç: 'c', +} + +/** + * Clean lastname input and remove all accents but not ʼ, ', - + * @param {string} lastname + * @return {string} lastnameSanitized + */ +function sanitizeLastname(lastname) { + return lastname + .replace(/[âêîôûäëïüéèç]/g, match => REPLACE_CHARS[match]) + .trim() +} + +module.exports = { sanitizeLastname }